【发布时间】:2016-01-26 05:00:19
【问题描述】:
我对在 ASP.NET 中发送多部分电子邮件的问题感到非常困惑。我正在使用我确信以前可以使用的代码,但收到的电子邮件似乎没有正文。
代码的关键位是这样的:
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainBody, null, MediaTypeNames.Text.Plain));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html));
我可以验证 plainBody 是有效的文本,htmlBody 是有效的 HTML。除此之外,我正在创建一个非常简单的MailMessage 主题,从和到。我没有设置 MailMessage 的任何其他属性,而是使用我以前多次使用过的 Google 凭据使用标准 System.Net.Mail.SmtpClient 发送。
当电子邮件到达时,它似乎完全是空的。
如果我将以上两行替换为以下内容(没有其他更改),则 HTML 电子邮件正确到达。
message.Body = htmlBody;
message.IsBodyHtml = true;
那么,我的空电子邮件可能是什么原因造成的?我尝试将 HTML 简化为包含在 <b> 标记中的单个单词,因此它与正文内容无关,正如我所说,我之前多次使用过类似的代码,没有任何问题。我已经在 GMail 和 Office 365 中测试了电子邮件的接收,结果相同。
非常欢迎提出建议。
【问题讨论】:
-
您显示的代码没有问题。也许它的另一段代码有问题。你能提供一个完整的例子吗?另外,在接收端,你能不能以文本形式打开邮件(以 MIME 邮件形式查看邮件),看看它是否包含正文?
标签: c# asp.net email system.net.mail mailmessage