我的C#应用程序需要将问题报告从用户的计算机发送给支持技术人员。没有可用的常见SMTP服务器,所以我认为我不能使用System.Net.Mail;相反,必须使用用户自己的电子邮件程序和帐户发送消息。我可以使用办公自动化来启动Outlook并撰写邮件。但是如果用户没有使用Outlook呢?是否有更多通用机制由多个电子邮件客户端支持?或者是否有一个知道如何检测和调用各种客户端的库?
编辑:对于提交问题报告,我需要包含附件或(最坏的情况下)长消息体...答案 0 :(得分:8)
Process.Start("mailto:hurr@durr.com");
Process.Start方法向操作系统交出执行特定指令的责任。 Windows将识别mailto方案并确定相应的邮件客户端。这是使用Default Programs配置的。
答案 1 :(得分:4)
如果您希望将此功能与任何电子邮件应用程序配合使用,则可能只需使用Process.Start
,并使用短主体和主题定义mailto:
网址。
这应该适用于一般情况:
Process.Start(@"mailto:your@email.com?cc=other@email.com&bcc=stillanother@email.com&subject=Bug Report&body=This may or may not show up.");
但是,邮件客户端通常会忽略正文标记。不幸的是,没有通用的方法来获取mailto:
中的所有内容。
答案 2 :(得分:2)
新线体使用%0A ,新段落使用%0A%0A 。