如何发送带有 HTML 标签的电子邮件,而不是 C# 中的 HTML 纯文本
Posted
技术标签:
【中文标题】如何发送带有 HTML 标签的电子邮件,而不是 C# 中的 HTML 纯文本【英文标题】:How to send an email with HTML tag, not a HTML plain text in C# 【发布时间】:2019-10-06 17:08:56 【问题描述】:我想使用 C# 发送电子邮件,但发送的是纯 html 文本,而不是 HTML 标记。
下面是一些代码..
StringBuilder pl_sbHtml = new StringBuilder();
pl_sbHtml.Append("<html>");
pl_sbHtml.Append("<head>");
pl_sbHtml.Append("</head>");
pl_sbHtml.Append("<body>");
pl_sbHtml.Append("<td>"+ Content Data + "</td>"); // This Content Data is from DB with HTML Tag
pl_sbHtml.Append("</body>");
pl_sbHtml.Append("</html>");
MailAction pl_objMail = new MailAction("Title", pl_sbHtml.ToString(), SmtpHost);
pl_objMail.IsBodyHtml = true;
pl_objMail.AddToMail(TO);
pl_objMail.SetFromMail(FROM);
pl_objMail.UseDefaultCredentials = false;
pl_objMail.SendMail();
电子邮件中的当前结果:
< div style='font:30px'> HELLO < /div>
(可以看到 HTML 标签。)
电子邮件中的预期结果:
HELLO(应用的 HTML 标签。) 谢谢 !【问题讨论】:
将电子邮件正文类型更改为 html 而不是文本 @UK_Dev 参考代码:pl_objMail.IsBodyHtml = true;
。 OP 已经这样做了
在添加html正文之前也要设置格式,还要确保它有body和html标签
什么是MailAction
?我找不到它的参考文档
@KUNWOOMYUNG 你能添加你的MailAction
类吗?
【参考方案1】:
电子邮件内容真的很有趣,而且电子邮件客户端也各不相同。我在 Outlook 中对此进行了测试
以< div style='font:30px'> HELLO < /div>
的原声明内容
它没有正确渲染。经过一些试验和错误,似乎 html 标记中的前导空格导致了问题。
尝试
pl_sbHtml.Append("<td>" + "<div style='font:30px'> HELLO </div>" + "</td>");
按预期渲染
还是OP上的cmets,IsBodyHtml = true
是设置body之前设置还是之后设置都没有关系,只要在发送之前设置就行了。
测试代码:
StringBuilder pl_sbHtml = new StringBuilder();
var from = "steve@ste-fu.uk";
var to = "steve@ste-fu.uk";
pl_sbHtml.Append("<html>");
pl_sbHtml.Append("<head>");
pl_sbHtml.Append("</head>");
pl_sbHtml.Append("<body>");
pl_sbHtml.Append("<td>" + "<div style='font:30px'> HELLO </div>" + "</td>");
pl_sbHtml.Append("</body>");
pl_sbHtml.Append("</html>");
MailMessage pl_objMail = new MailMessage();
pl_objMail.Body = pl_sbHtml.ToString();
pl_objMail.IsBodyHtml = true;
pl_objMail.Subject = "Testing";
pl_objMail.To.Add(to);
pl_objMail.From = new MailAddress(from);
var client = new SmtpClient("smtp.ste-fu.uk");
client.Send(pl_objMail);
【讨论】:
谢谢@ste-fu,但我发现问题出在另一边...但是谢谢您的回复!!以上是关于如何发送带有 HTML 标签的电子邮件,而不是 C# 中的 HTML 纯文本的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Outlook 2010(无 smtp)和 python 发送带有嵌入图像(不是附件)的 HTML 格式电子邮件
如何在 Gmail 中使用标签来识别单个邮件,而不是已由脚本处理的线程