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

使用SendGrid发送纯文本邮件异常:C#发送后含HTML标签

嘿,这个问题我之前也碰到过!其实核心就是你可能没彻底把邮件的内容类型锁死在纯文本上,或者不小心留了HTML相关的设置。我给你一步步拆解解决方法:

1. 用System.Net.Mail时,彻底锁定纯文本模式

如果你用的是.NET传统的System.Net.Mail库,一定要确保这两个关键设置:

  • 只给MailMessage.Body赋值纯文本内容
  • 把IsBodyHtml显式设为false(默认其实是false,但如果之前碰过HTML相关属性,可能被覆盖)

给你一个干净的控制台示例代码:

using System.Net;
using System.Net.Mail;

var fromAddr = new MailAddress("your-email@domain.com", "你的名字");
var toAddr = new MailAddress("recipient@domain.com", "收件人名字");
const string password = "你的邮箱授权码"; // 注意别用明文密码,建议用配置文件
const string subject = "纯文本邮件测试";
const string plainTextBody = "这是纯文本内容,没有任何HTML标签,换行\n就用普通换行符!";

var smtpClient = new SmtpClient
{
    Host = "smtp.domain.com", // 比如smtp.gmail.com
    Port = 587,
    EnableSsl = true,
    Credentials = new NetworkCredential(fromAddr.Address, password),
    UseDefaultCredentials = false
};

using var mailMsg = new MailMessage(fromAddr, toAddr)
{
    Subject = subject,
    Body = plainTextBody,
    IsBodyHtml = false // 这行是关键!别漏
};

smtpClient.Send(mailMsg);

2. 检查是否不小心添加了HTML备用视图

如果你的代码里曾经用过AlternateViews.Add(...)来添加HTML版本的内容,哪怕后来设置了纯文本,邮件依然会是multipart/alternative类型(同时包含纯文本和HTML),客户端可能优先显示HTML。这种情况要彻底移除所有HTML相关的AlternateViews,确保邮件只有纯文本部分。

3. 用现代库MailKit的正确姿势

如果你转用更推荐的MailKit库(比System.Net.Mail更稳定),要直接创建TextPart("plain"),不要碰HTML相关的部分:

using MimeKit;
using MailKit.Net.Smtp;

var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("你的名字", "your-email@domain.com"));
msg.To.Add(new MailboxAddress("收件人名字", "recipient@domain.com"));
msg.Subject = "纯文本邮件测试";

// 只添加纯文本内容,完全不涉及HTML
msg.Body = new TextPart("plain")
{
    Text = "纯文本内容示例,这里的所有字符都会原样显示,不会被解析成HTML!"
};

using var client = new SmtpClient();
client.Connect("smtp.domain.com", 587, true);
client.Authenticate("your-email@domain.com", password);
client.Send(msg);
client.Disconnect(true);

4. 验证结果

发送后查看邮件源代码,确认Content-Type是text/plain; charset=utf-8(类似这样),而不是text/html或者multipart/alternative。如果是后者,说明代码里还是混进了HTML内容,需要再检查一遍。

按这个思路调整后,邮件就会是纯纯的文本格式,不会出现HTML标签啦!

内容的提问来源于stack exchange,提问作者Paul Michaels

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:41:38