如何通过 Mimekit/Mailkit 发送 HTML 消息
Posted
技术标签:
【中文标题】如何通过 Mimekit/Mailkit 发送 HTML 消息【英文标题】:How to send HTML message via Mimekit/Mailkit 【发布时间】:2017-04-30 20:12:21 【问题描述】:BodyBuilder bodyBuilder = new BodyBuilder();
messageContent.Body = "<b>This is a test mail</b>";
bodyBuilder.htmlBody = messageContent.Body;
我试图将我的身体嵌入健美运动员,但当我收到电子邮件时,它返回了一个空的身体。如果正文为空,我有一个异常会引发参数..
【问题讨论】:
【参考方案1】:像你一样使用BodyBuilder
可能是最简单的方法。
var bodyBuilder = new BodyBuilder();
bodyBuilder.HtmlBody = "<b>This is some html text</b>";
bodyBuilder.TextBody = "This is some plain text";
message.Body = bodyBuilder.ToMessageBody();
client.Send(message);
【讨论】:
如果您只包含HtmlBody
而不包含TextBody
,是否存在仅包含一个而不包含两个可能被识别为垃圾邮件的风险?
这可能取决于收件人的邮件软件
更多真实世界样本?【参考方案2】:
MimeKit Documentation - Creating Messages
var message = new MimeMessage();
message.Body = new TextPart ("html") Text = "<b>Test Message</b>" ;
"TextPart 是具有文本媒体类型的叶节点 MIME 部分。TextPart 构造函数的第一个参数指定媒体子类型:plain、html 、丰富的、rtf和xml。”
【讨论】:
我在让其他示例工作时遇到问题。这个很完美。谢谢!【参考方案3】:如果你想严格一点,这里还有一个选择;
msg.Body = new TextPart(MimeKit.Text.TextFormat.Html) Text = "<b>html content</b>" ;
【讨论】:
【参考方案4】:var bodyBuilder = new BodyBuilder();
bodyBuilder.HtmlBody = body;
bodyBuilder.TextBody = "-";
message.Body = bodyBuilder.ToMessageBody();
在某些邮件 ISP 中,您应该始终按值设置 bodyBuilder.TextBody。
【讨论】:
以上是关于如何通过 Mimekit/Mailkit 发送 HTML 消息的主要内容,如果未能解决你的问题,请参考以下文章