Mag*_*son 6 c# email outlook richtext
通过分配text/html内容类型字符串,以HTML格式发送电子邮件(到Outlook)非常有用:
using (MailMessage message = new MailMessage())
{
message.From = new MailAddress("--@---.com");
message.ReplyTo = new MailAddress("--@---.com");
message.To.Add(new MailAddress("---@---.com"));
message.Subject = "This subject";
message.Body = "This content is in plain text";
message.IsBodyHtml = false;
string bodyHtml = "<p>This is the HTML <strong>content</strong>.</p>";
using (AlternateView altView = AlternateView.CreateAlternateViewFromString(bodyHtml,
new ContentType(MediaTypeNames.Text.Html)))
{
message.AlternateViews.Add(altView);
SmtpClient smtp = new SmtpClient(smtpAddress);
smtp.Send(message);
}
}
Run Code Online (Sandbox Code Playgroud)
电子邮件在Outlook(2003)中被正确识别为HTML.
但如果我尝试富文本:
MediaTypeNames.RichText;
Run Code Online (Sandbox Code Playgroud)
Outlook没有检测到这一点,它回退到纯文本.
如何以富文本格式发送电子邮件?
最重要的是,您无法使用System.Net.Mail轻松完成此操作.
Outlook中的富文本作为SMTP世界(Exchange外部)的winmail.dat文件发送.
winmail.dat文件是TNEF消息.因此,您需要在winmail.dat文件中创建您的richtext(格式化为TNEF规则).
但是,并非全部.Outlook使用特殊版本的压缩RTF,因此,在将其添加到winmail.dat文件之前,还需要压缩RTF.
最重要的是,这很难做到,除非客户真的需要这个功能,否则我会重新考虑它.
这不是你可以用.NET中的几行代码做的事情.