繁体   English   中英

从.NET应用程序发送电子邮件的最佳方式?

[英]Best way to send an email from a .NET application?

我正在开发一个Windows Forms(.NET 3.5)应用程序,它有一个内置的异常处理程序来捕获可能出现的任何(天堂禁止)异常。 我希望异常处理程序能够提示用户单击“ 发送错误报告”按钮,这将导致应用程序向我的FogBugz电子邮件地址发送电子邮件。

什么是最好的方法,有什么“陷阱”需要注意?

您不必担心客户端凭据,只需使用Esteban建议的SmtpClient。 您将需要用户在配置时提供有效的Smtp服务器URL,但大多数ISP允许匿名smtp,只要用户在其网络(即其客户端)中放入url,那么大多数ISP都会人们不会有任何问题。

注意:.config文件的预定义部分用于存储SmtpClient对象的配置选项。 如果您将设置放在那里,则在发送电子邮件时不必在代码中明确设置任何内容。 该部分的一个例子如下:

<system.net>
   <mailSettings>
      <smtp deliveryMethod="Network" from="stuff@somewhere.com.au">
         <network host="smtp.somewhere.com.au" />
      </smtp>
   </mailSettings>
</system.net>

用户名和密码是可选的。 Intellisense适用于配置文件的这些部分。

编辑:对我的代码示例稍作修改。

您将要使用此处概述的SmtpClient类。
没有陷阱 - 发送电子邮件就像它一样容易。

在受控环境中,使用SmtpClient就是答案。 但是在用户的计算机上,您需要一个SMTP服务器才能发送。

您可以提示用户输入他们的SMTP凭据,但我认为这对您的案例来说是不切实际的。 作为用户,我不想将我的SMTP凭据提供给随机应用程序(想想垃圾邮件)。 您也不希望将自己的SMTP凭据硬编码到应用程序中,恶意用户嗅探这些凭据并使用您的服务器发送垃圾邮件也是微不足道的。

理想情况下,您可以使用用户的邮件代理发送电子邮件。 我以为你可以制定并执行mailto:URL,但我不确定你是否能够为消息指定正文或任何附件。

你提到你正在使用Fogbugz。

请尝试http://www.fogcreek.com/FogBugz/docs/60/topics/customers/BugzScout.html?isl=59722http://www.fogcreek.com/FogBugz/blog/post/C-wrapper-for -the-FogBugz的-API.aspx?ISL = 59722

我想在你的FB安装目录中有一些示例代码。 我和Michael Pryor一起检查了许可证,他说使用他们的代码是好的,但YMMV,所以我检查。

它提供了一个很好的起点。

您可能还想查看第三方aspNetEmail库,它提供了许多有用的功能,可以在System.Net.Mail上面提供。

您将要使用此处概述的SmtpClient类。 没有陷阱 - 发送电子邮件就像它一样容易。

广泛的System.Net.Mail FAQ位于这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM