2008 年,Jeff 写了一篇关于负责任地崩溃的帖子。本着这种精神,我试图在我的崩溃错误对话框中添加一个“发送错误报告”按钮。这个想法是用户可以很容易地发送一个完整的错误报告,其中已经包括版本信息、操作系统信息、堆栈跟踪......这些信息应该放在消息正文或附件文件中。
不幸的是,从 .NET 应用程序发送这样一封电子邮件似乎并不简单:
- System.Net.Mail不是我要找的:我不能确定是否可以在所有环境中建立与 SMTP 服务器的连接,并且我不想承担配置本地 SMTP 主机名和我的用户的端口。相反,我只想使用预先编写的消息启动系统上现有的电子邮件软件。
- 使用操作系统打开“mailto:”URL是可行的,但是通过这种方式可以传递的数据量存在令人讨厌的限制。此外, mailto 规范似乎并不真正支持附件。
- mapi.dll可能会按照此codeproject 文章的说明执行我想要的操作,但我在其他地方读到 mapi.dll 从根本上与 .NET 不兼容,从而导致随机崩溃。
有没有人找到一个安全可靠的解决方案来做到这一点?