使用C#发送MHT文件邮件消息
问题描述:
有没有人有任何代码发送MHT在C#中使用SmtpClient和MailMessage?使用C#发送MHT文件邮件消息
我发现了使用Alternate Views的诱人参考,但我无法弄清楚如何使这个工作与我的SSRS生成的MHT。
如果任何人有任何工作代码,他们愿意分享我会非常感激。
答
因此,看起来.NET MailMessage并不支持这种开箱即用的方式。我发现了几种可以用于不同程度成功的方法。
MHTML - > HTML解码器
大卫本克写道:https://github.com/DavidBenko/MHTML-to-HTML-Decoding-in-C-Sharp/blob/master/MHTMLParser.cs,虽然它的作品,我无法使图像出现时,我观察所得的电子邮件。在HTML看看右边,它只是没有工作在Outlook 2010中
转换MimeKit的MimeMessage到.NET邮件
正如杰弗里指出,这是一个开始https://github.com/jstedfast/MimeKit/issues/140。我再次遇到了图像没有显示在结果信息中的问题。
使用MimeKit & MailKit
我结束了使用https://github.com/jstedfast/MimeKit来完成这项工作。这可以实现如下:
MimeMessage messageMimeKit = MimeMessage.Load(Request.MapPath("~/Blah/378921.mht"));
messageMimeKit.From.Add(new MailboxAddress("Dev", "[email protected]"));
messageMimeKit.To.Add(new MailboxAddress("Homer", "[email protected]"));
messageMimeKit.Subject = "Another subject line";
using (var client = new MailKit.Net.Smtp.SmtpClient())
{
client.Connect("smtp.gmail.com", 465, true);
client.Authenticate("[email protected]", "*****");
client.Send(messageMimeKit);
client.Disconnect(true);
}
您可以创建报告和subscritions通过电子邮件以多种格式包括MHTML传递这些报告。在SSRS中配置SMTP设置,勾选[this](http://bhushan.extreme-advice.com/email-configuration-in-ssrs-with-smtp-in-windows-server-2008r2/)。在订阅中选择MHTML格式。 –
我已经有一个我需要发送的MHTML文档。由于我有其他要求,不希望SSRS执行此操作。需要从C#代码中完成。 – TheEdge
你想附加或嵌入邮件正文中的MHTML文件?我认为[this](http://www.example-code.com/csharp/loadMhtmlAndSendEmail.asp)代码可以帮助你。另外请记住,邮件中的嵌入式MHTML可以显示为未格式化,这是由于客户端邮件阻止和对MIME的支持。 –