【问题标题】:System.Net.Mail.SmtpClient deletes some of my html and css tagsSystem.Net.Mail.SmtpClient 删除了我的一些 html 和 css 标签
【发布时间】: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


【解决方案1】:

电子邮件 HTML 阅读器需要混合使用内联样式,并且在某些客户端中,还需要基于 HTML 的样式标记。

HTML 只要求所有内容都包含在(无标签、无脚本和无外部资源)中。换句话说,例如,您必须使用 CSS 的内联样式而不是引用它们。

【讨论】:

  • 首先,您的所有样式都需要内联完成。 HTML 邮件中没有外部资源(CSS、脚本)参考。所以你的root-container 会像:
    ...
    另外,您应该查看 Mail 中对 HTML5 的支持。并非每件事都按预期工作。这个资源有很多信息。 campaignmonitor.com/css/transforms/backface-visibility
猜你喜欢
  • 2011-11-12
  • 1970-01-01
  • 2021-07-11
  • 1970-01-01
  • 2020-07-05
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多