【发布时间】:2010-10-15 23:12:52
【问题描述】:
有没有人找到一种在以编程方式生成的电子邮件中嵌入 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>
在字符串中调用 this 会调用 this inline
下面的答案发送消息我会用这个
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)
【问题讨论】:
-
我很惊讶没有人警告您不要发送 HTML 电子邮件。
-
请解释一下,这是为少数不支持它的人准备的。
-
使用premailer 移动你的css内联。
-
媒体选择器支持更差。我发现大多数客户端,包括非常流行的客户端都会忽略任何具有媒体选择器的 CSS。因此,您不能发送 HTML 电子邮件并拥有单独的打印/显示版本。另一个原因是电子邮件中的 html 越少越好,而是使用链接。