C# 是否从WinForms应用发送带有附件的电子邮件?

C# 是否从WinForms应用发送带有附件的电子邮件?,c#,.net,winforms,C#,.net,Winforms,我当前正在使用进程。开始从我的WinForms应用程序发送简单电子邮件。你能想出任何方法在电子邮件中添加文件附件吗?(编辑:使用Process.Start?) 我现在用的是: Process.Start("mailto:test@test.invalid?subject=" + HttpUtility.HtmlAttributeEncode("Application error report") + "&body=" + body); 试试这样--> 好的,根据你的编辑和其他信息,我

我当前正在使用进程。开始从我的WinForms应用程序发送简单电子邮件。你能想出任何方法在电子邮件中添加文件附件吗?(编辑:使用Process.Start?)

我现在用的是:

Process.Start("mailto:test@test.invalid?subject=" + HttpUtility.HtmlAttributeEncode("Application error report") + "&body=" + body);
试试这样-->


好的,根据你的编辑和其他信息,我在

这看起来像你可能正在寻找的,虽然我不承认这方面的任何知识,因为我一直使用我发布的方法


希望这对你有用。

我忘了问一个重要的问题。你想怎么寄?Outlook、Google等…+1这将教会我花时间看看是否可以使用Process来实现这一点。开始:)结果表明,你不能以这种方式添加附件,因此已经正确的System.Net.Mail将成为更好的答案。有趣的是,如果你搜索我以前的帖子,那么,我在差不多一年前发布了一个几乎相同的问题。我想这是我的回报!我爱死你了!用户的默认电子邮件客户端将打开并显示准备发送的邮件。到目前为止,我一直避免使用SmtpClient,因为我不想把我的程序变成电子邮件客户端。用户在其电子邮件主机名中查找和编辑可能是一个支持问题。我希望有人知道这个过程的诀窍。开始。。。我应该更清楚地说明这一点。MAPISendMail似乎与win7-64和Thunderbird一起工作,Thunderbird是我唯一用于测试的电子邮件客户端。包装器类代码在Galloway文章中链接到。我猜现在很多用户甚至不会使用本地电子邮件客户端(gmail),所以不知道我会怎么做。类似的帖子-->
MailMessage theMailMessage = new MailMessage("from@email.com", "to@email.com");
theMailMessage.Body = "body email message here";
theMailMessage.Attachments.Add(new Attachment("pathToEmailAttachment"));
theMailMessage.Subject = "Subject here";

SmtpClient theClient = new SmtpClient("IP.Address.Of.Smtp");
theClient.UseDefaultCredentials = false;
System.Net.NetworkCredential theCredential = new System.Net.NetworkCredential("user@name.com", "password");
theClient.Credentials = theCredential;
theClient.Send(theMailMessage);