发送HTML电子邮件的问题

时间:2011-05-18 09:52:31

标签: c# email

为什么当我发送html电子邮件时,它看起来像:

enter image description here

但初始页面是:

enter image description here

这是代码:

MailMessage message = new MailMessage();
                message.IsBodyHtml = true;
                message.Subject = subject;
                message.Body = body;

                foreach (MailAddress recipient in recipients)
                {
                    message.To.Add(recipient);
                }
                if (message.To.Count > 0)
                {
                    SmtpClient smtp = new SmtpClient();
                    smtp.Send(message);
                    return true;
                }

Html文件包含头部的css。 http://pastebin.com/r5V6X4Ld

2 个答案:

答案 0 :(得分:1)

我假设body变量只包含HTML代码,但不包含CSS或图像,因为两者都是单独的文件。
基本上,您需要将图像附加到邮件并更改正文的HTML代码以指向正确的位置。有关详细信息和示例代码,请参阅here

这可能也会有所帮助:http://www.alistapart.com/articles/cssemail/

  

<强>问题:

     

有些客户在没有任何风格的情况下呈现我的电子邮件。我首先将其归因于样式的剥离,但后来发现样式在源代码中清晰可见。我随后花了很多时间试图揭开罪魁祸首,测试无数版本的电子邮件。唉,问题就在我的鼻子底下:样式没有被剥离 - 名字前面的点(。)。因此,“。Feature {}”变为“Feature {}”,从而导致无意义的样式定义。

<强>解决方案:

  

我使用了类选择器,它确保每个样式都以字母而不是点开头。所以“.Feature {}”将成为“td.Feature {}”或“div.Feature {}”(取决于应用程序)。一个有点平凡的修复,但有效和(再次)合规。

答案 1 :(得分:0)

您必须使用完整路径引用您的图像,即www.yourdomain / imagename.jpg等,并且还必须将该类作为内联样式提供