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

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

有帮助吗?

解决方案

您需要按照概述使用 SmtpClient 类 这里.
没有任何陷阱 - 发送电子邮件非常简单。

其他提示

您不需要担心客户端凭据,只需按照 Esteban 的建议使用 SmtpClient 即可。您需要用户在配置时提供有效的 Smtp 服务器 url,但大多数 ISP 允许匿名 smtp,前提是您在他们的网络上(他们的客户端之一) - 只要用户输入其 ISP smtp 服务器的 url,然后大多数人们不会有任何问题。

笔记:.config 文件中有一个预定义部分,用于存储 SmtpClient 对象的配置选项。如果您将设置放在那里,则在发送电子邮件时无需在代码中显式设置任何内容。该部分的示例如下:

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

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

编辑:对我的代码示例进行轻微修正。

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

您可以提示用户输入 SMTP 凭据,但我认为这对于您的情况来说是不切实际的。作为用户,我不想向随机应用程序提供我的 SMTP 凭据(想想垃圾邮件)。您也不想将自己的 SMTP 凭据硬编码到应用程序中,恶意用户很容易嗅探这些凭据并使用您的服务器发送垃圾邮件。

理想情况下,您将能够使用用户的邮件代理来发送电子邮件。我在想你也许能够制定并执行邮件:URL,但我不确定您是否能够指定邮件的正文或任何附件。

您提到您正在使用 Fogbugz。

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

我想在你的 FB 安装目录中有一些示例代码。我向迈克尔·普赖尔核实了以下内容:许可,他说使用他们的代码没问题,但是 YMMV,所以我会检查一下。

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

您可能还想查看第 3 方 网络电子邮件 库,它提供了许多比 System.Net.Mail 提供的有用的功能。

您需要按照概述使用 SmtpClient 类 这里。没有任何陷阱 - 发送电子邮件非常简单。

广泛的 System.Net.Mail 常见问题解答 位于 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top