You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中HTML邮件为何以纯文本形式发送?

问题:ASP.NET MVC发送HTML邮件但显示为纯文本

代码示例

MailMessage mail = new MailMessage();
mail.From = new MailAddress(emailFrom);
mail.To.Add(new MailAddress(emailTo));
mail.IsBodyHtml = true;
mail.Subject = subject;
mail.Body = body.ToString();

System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(RemoteServerCertificateValidationCallback);
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, Encoding.UTF8, "text/html");
mail.AlternateViews.Add(htmlView);
SmtpClient smtp = new SmtpClient();
smtp.Host = "mail.alpc.ir";
smtp.Port = 25;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential(emailFrom, emailFromPassword);
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Send(mail);

收到的邮件内容

p{margin-top: 0;margin-bottom: 0.5rem;}:root{--w1:600px;}:root{--d2:0.5rem;}:root{--fs:12px}@font-face {font-family: iransans;font-style: normal;font-weight: normal;src: url('https://sadidgostaran.ir/Content/IRANSansWeb.woff2') format('woff2');}@media only screen and (max-width:630px){:root{--w1:100%;}}@media only screen and (max-width:420px){:root{--fs:10px}.table-responsive{display: block;width: 100%;overflow-x: auto;-webkit-overflow-scrolling: touch;}}
 گیرنده گرامی  

werqwefsdvfasdf asfweqfwqr werwqreqwf werwqrqwefswadf qwerewrwerqwefsdvfasdf asfweqfwqr werwqreqwf werwqrqwefswadf qwerewrwerqwefsdvfasdf asfweqfwqr werwqreqwf werwqrqwefswadf qwerewrwerqwefsdvfasdf asfweqfwqr werwqreqwf werwqrqwefswadf qwerewrwerqwefsdvfasdf asfweqfwqr werwqreqwf werwqrqwefswadf qwerewrwerqwefsdvfasdf asfweqfwqr werwqreqwf werwqrqwefswadf qwerewrwerqwefsdvfasdf asfweqfwqr werwqreqwf werwqrqwefswadf qwerewr

 ما را در شبکه های اجتماعی دنبال کنید

سدید گستران در گوگلمحمد مهدی نعمتیسمت شخصسدید گستران امین 021-54942 - 09123456789

info@sadidgostaran.ir

www.sadidgostaran.ir

میدان ولیعصر - ساختمان تجاری ایرانیان - طبقه 4 - واحد 5

解决方案

原因分析

代码中同时设置了主HTML正文(mail.IsBodyHtml = true + mail.Body)和HTML格式的替代视图(AlternateView),这会导致部分邮件客户端无法正确识别HTML内容,转而以纯文本形式展示。此外,主正文未指定编码,也可能引发解析问题。

修复方案1:移除冗余的AlternateView代码

若仅需发送HTML格式邮件,直接使用主正文即可,无需添加AlternateView:

MailMessage mail = new MailMessage();
mail.From = new MailAddress(emailFrom);
mail.To.Add(new MailAddress(emailTo));
mail.IsBodyHtml = true;
mail.Subject = subject;
// 为正文指定UTF-8编码,确保特殊字符正确显示
mail.BodyEncoding = Encoding.UTF8;
mail.Body = body.ToString();

System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(RemoteServerCertificateValidationCallback);

SmtpClient smtp = new SmtpClient();
smtp.Host = "mail.alpc.ir";
smtp.Port = 25;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential(emailFrom, emailFromPassword);
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Send(mail);

修复方案2:同时提供HTML和纯文本版本(推荐)

为兼容所有邮件客户端,建议同时发送两种格式。主正文设为纯文本,通过AlternateView提供HTML版本:

MailMessage mail = new MailMessage();
mail.From = new MailAddress(emailFrom);
mail.To.Add(new MailAddress(emailTo));
// 主正文为纯文本,IsBodyHtml设为false
mail.IsBodyHtml = false;
mail.Subject = subject;
mail.BodyEncoding = Encoding.UTF8;
// 纯文本内容(可从HTML转换或手动编写)
mail.Body = "这是纯文本版本的邮件内容...";

System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(RemoteServerCertificateValidationCallback);

// 添加HTML格式的替代视图
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, Encoding.UTF8, "text/html");
mail.AlternateViews.Add(htmlView);

SmtpClient smtp = new SmtpClient();
smtp.Host = "mail.alpc.ir";
smtp.Port = 25;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential(emailFrom, emailFromPassword);
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Send(mail);

额外注意事项

  • 确保body变量包含完整且格式正确的HTML代码(如包含<html>、<body>标签,闭合所有标签),不完整的HTML可能被客户端识别为纯文本。
  • 测试不同邮件客户端,确保内容显示正常。

内容的提问来源于stack exchange,提问作者meysam rahpeyma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:35:03