C# MailKit HTML 以纯文本形式接收的电子邮件

C# MailKit HTML email received as plain text

我有一个复杂的电子邮件模板,其中包含许多 divsection 和其他 HTML 元素。 HTML 模板引用了 CSS(已上传到服务器)。我正在使用以下代码通过 MailKit 发送 HTML 电子邮件:

var message = new MimeMessage();
var bodyBuilder = new BodyBuilder();
bodyBuilder.HtmlBody = File.ReadAllText(pathToHtmlFIle);
message.Body = bodyBuilder.ToMessageBody();

client.Send(message);

但是客户端只接收纯文本的所有内容,没有颜色,没有格式。这是预期的结果吗?

我认为您需要使用嵌入在头部部分的内联 CSS 或 CSS。由于大多数网络邮件客户端会阻止指向外部样式表的链接,因此很少在电子邮件中看到这种方法。

在这个话题上苦苦挣扎之后,我终于弄清楚错误是 html 中的双引号...使用 notepad++ 替换(使用 ctrl+f 快速启动)所有 " for '。天啊,只收了plain/text终于收到了text/html.

PD:不要使用 bootstrap 也不要尝试 link 外部来源,因为邮件客户端会阻止外部 css 提供商。对所有标签使用严格的样式属性。