【发布时间】:2020-03-10 12:40:07
【问题描述】:
我想发送一封格式为 html 的邮件。我可以这样做,但邮件出错了。当我打开邮件源时,我看到我的一些样式和标签被删除了,但我不知道为什么。例如;
这是我要发送的:
<div class="root-container">
<div class="section">
...
</div>
<div>
这是我收到的:
<div class="section">
...
</div>
这是我的 CSS 样式:
div.root-container {
padding: 1rem;
position: relative;
background: linear-gradient(to right, #13a455, #0a5ca4);
padding: 5px;
}
这是收到的样式:
.ROOT-CONTAINER {
padding: 1rem;
background: linear-gradient(to right, #13a455, #0a5ca4);
}
C#代码:
var mail = new MailMessage();
mail.From = new MailAddress(accountContract.FromAdress, accountContract.FromName);
mail.Subject = messageContract.Subject ?? "";
mail.IsBodyHtml = true;
mail.Body = messageContract.Body;
using (var smtp = new SmtpClient())
{
try
{
smtp.Credentials = new NetworkCredential(accountContract.MailUser, accountContract.MailPassword);
smtp.Host = accountContract.Server;
smtp.Send(mail);
}
catch (SmtpException ex)
{
WriteLog(messageContract.MessageId, "SmtpClient", null, ex.ToString());
return MailStatus.UnProcessed;
}
}
我为这个问题困扰了好几天。如果您能帮助我,我将不胜感激。
【问题讨论】:
-
你能把你的完整代码。 C# 也是
-
编辑了代码。
-
您确定 SmtpClient 正在修改您的HTML?您确定这不是您使用的任何电子邮件客户端吗?使用Papercut 之类的工具拦截原始电子邮件并进行检查。
-
我不确定。是的,html 被修改了,但我不知道在哪里以及为什么。谢谢,我会试试 Papercut。
-
SmtpClient不会弄乱您的 html,通常这是导致此问题的 Web 客户端。我知道 Gmail 去掉了一些 css 和 html。
标签: c# html .net email smtpclient