电子邮件中的CSS

时间:2009-03-27 15:21:32

标签: asp.net css email smtp

有没有人找到一种在编程生成的电子邮件中嵌入CSS的好方法。我找到的最好的方法是将样式代码放入资源文件并将其调用到代码中。

麻烦就是

Dim objBuilder
objBuilder = New StringBuilder

objBuilder.Append(Resources.SystemEmail.CSSStyle)
objBuilder.Append("My Styled Email")

Dim _Body As String = objBuilder.ToString()

这将构建电子邮件正文

有没有办法为电子邮件制作模板文件或更好地将样式表调用为一个。

我的.resx文件中的代码是

<STYLE TYPE="text/css">
<!--
body
{

    font-family: Tahoma, Verdana, Arial;
    font-size: 10pt;
    padding: 3px 0px 0px 0px;
    margin: 0px 0px 0px 0px;

}
-->
</STYLE>

将其调用到字符串中会调用此内联

下面的答案发送消息我会用这个

Dim client As New SmtpClient("localhost")
Dim toAddr As New MailAddress(MailRecipients)
Dim fromAddr As New MailAddress(MailFrom)
Dim message As New MailMessage(fromAddress, toAddress)


message.Subject = "The Subject"
message.Body =  _Body 
message.IsBodyHtml = True
message.BodyEncoding = System.Text.Encoding.UTF8

client.Send(message)

5 个答案:

答案 0 :(得分:13)

我们成功的唯一方法是将CSS内联包含在内。文档标题样式CSS包含不一致或不可靠。

另外,请确保您的电子邮件标头设置为: 内容类型:text / html;字符集= ISO-8859-1

修改 UTF-8也是一个不错的选择。该语句的关键点是Content-type设置为text / html

答案 1 :(得分:7)

以下是每个电子邮件客户端支持哪些css样式的综合指南: http://www.campaignmonitor.com/css/

有关您需要了解的内容的指南: http://www.campaignmonitor.com/design-guidelines/

还有大量免费的预建模板可供您参考: http://www.campaignmonitor.com/templates/

最后,同一家公司提供了一个测试工具,它会以合理的费用向您展示您的邮件将如何显示在每个电子邮件客户端中: http://www.campaignmonitor.com/testing/

答案 2 :(得分:4)

您很遗憾需要在元素中包含CSS内联,以便在电子邮件客户端之间保持任何模糊的兼容性。此外,您应该使用表格进行布局(列等),因为CSS div布局经常会失败。附加图像也主要针对cid:URL失败。 Thunderbird是关于兼容性的最佳邮件客户端(显然,因为它使用Gecko渲染器)。展望是最糟糕的。

此外,使用带有纯文本替代的multipart mime。我使用数据库来存储电子邮件模板,还有纯文本和html模板,以及{{replaceable}}值。

答案 3 :(得分:1)

内联CSS是确保最大兼容性的必要条件。

像MailChimp这样的系统会使用你的元素类,解析你的CSS,并用内联样式替换类属性。您可以编写自己的代码来执行此操作。

答案 4 :(得分:1)

除了每个人都推荐的内联css之外,请记住,电子邮件通常会在其他网页上在线显示,例如通过Yahoo!邮件,Hotmail或Gmail。您可以想象如果允许body样式声明或随机类名称,将会发生混乱。您应该计划可能会丢弃任何未内联定义的内容,尽管某些系统可能会尝试以不可预测的成功保留这些规则。