如何在C#的SMTP发送邮件中设置不接受回复
实现Google SMTP发送不可回复邮件(Gmail回复按钮不高亮)
要让Gmail中收到的邮件回复按钮不高亮(变为不可用状态),核心是给邮件设置无有效回复地址,同时可通过邮件头辅助客户端识别。对现有代码做以下修改即可:
修改点说明
- 清空
ReplyToList集合:这是.NET中指定回复地址的标准属性,设为空后邮件无有效回复目标 - 添加
X-No-Reply自定义邮件头:辅助Gmail这类客户端识别这是一封不接受回复的邮件
修改后的完整代码
public ActionResult SendEmail() { var fromAddress = new MailAddress("from@gmail.com", "From Name"); var toAddress = new MailAddress("to@gmail.com", "To Name"); const string fromPassword = "password"; const string subject = "Subject"; const string body = "<p>Hello</p>"; var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body, IsBodyHtml = true, // 清空回复地址集合 ReplyToList = new MailAddressCollection(), // 添加自定义邮件头标记不可回复 Headers = { { "X-No-Reply", "true" } } }) { smtp.Send(message); } return View(); }
兼容旧版本.NET的方案
如果你的.NET版本不支持ReplyToList,可以改用ReplyTo属性设为null替代:
ReplyTo = null
设置完成后,Gmail收到邮件时,回复按钮会变为灰色不可点击状态,不会再呈蓝色高亮。
内容的提问来源于stack exchange,提问作者Abdul Haseeb
相关产品推荐
相关产品推荐

