微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何以富文本格式向Outlook发送电子邮件?

通过分配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);
  }
}

电子邮件在Outlook(2003)中被正确识别为HTML.
但如果我尝试富文本:

MediaTypeNames.RichText;

Outlook没有检测到这一点,它回退到纯文本.
如何以富文本格式发送电子邮件

解决方法

最重要的是,您无法使用System.Net.Mail轻松完成此操作.

Outlook中的富文本作为SMTP世界(Exchange外部)的winmail.dat文件发送.

winmail.dat文件是TNEF消息.因此,您需要在winmail.dat文件中创建您的richtext(格式化为TNEF规则).

但是,并非全部. Outlook使用特殊版本的压缩RTF,因此,在将其添加到winmail.dat文件之前,还需要压缩RTF.

最重要的是,这很难做到,除非客户真的需要这个功能,否则我会重新考虑它.

这不是你可以用.NET中的几行代码做的事情.

原文地址:https://www.jb51.cc/csharp/92577.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐