在电子邮件正文中应用HTML格式

时间:2009-12-19 21:03:50

标签: html css email formatting html-email

我仍然想弄清楚,为什么我不能在自定义电子邮件的正文中应用HTML格式。我确信我错过了一些东西,或者我需要一双新的眼睛!

以下是添加到网页<head>的信息

<head runat="server">
    <link href="~/MyStyle.css" rel="stylesheet" type="text/css" />
</head>

Mystyle.css包含以下内容

span.orange
{
    color: #FF6D06;
    font-family: tahoma;
    font-size: 10pt;
}

这是身体的一部分......

Dim HtmlString as string = "<span class='orange'>This one should be painted</span>" 

使用Net.Mail

发送
Dim objMail As New Mail.MailMessage (blah, blah blah)
objMail.IsBodyHtml = True

更新:首先感谢您的意见。电子邮件本身不以任何方式以样式表引用。那么除了将样式表附加到电子邮件之外,我还有哪些选项?

5 个答案:

答案 0 :(得分:13)

当我这样做时,我通常将CSS嵌入电子邮件正文中:

<html>
<head>
<style type="text/css">
span.orange
{
    color: #FF6D06;
    ...
}
</style>
</head>
...

避免在HTML电子邮件中引用外部实体(如样式表,图像等)。这些引用可能不可用,具体取决于用户的邮件代理设置。另外,了解邮件代理中的HTML支持。它可能没有你想象的那么丰富。例如Here's some information on Outlook

答案 1 :(得分:6)

正如其他人所说,定义内联样式是最佳选择。以下是一些您可能会觉得有用的文章:

Rock Solid HTML Emails

Guide to CSS support in email clients

答案 2 :(得分:5)

看起来你错了。

您的CSS应该是内联的,而不是外部的。然后,您只需将所有HTML和CSS样式作为电子邮件的正文,它就可以使用。

您确实希望避免引用外部文件,因为许多电子邮件应用程序都会阻止引用。

答案 3 :(得分:0)

大多数邮件阅读器(基于桌面和基于网络)都不能很好地处理CSS:通常最好不使用外部CSS并使用内联样式,通常情况下更好使用表格来形成而不是div,...

而且,在这里,你的CSS在哪里?它至少在某个服务器上吗?
(即它不应该只在你的本地机器上,而是通过某种URL访问)

答案 4 :(得分:0)

Color属性不适用于电子邮件,对于大多数邮件代理,它可能在第一次发送电子邮件时起作用,但如果转发电子邮件则会被忽略。

最好的方法是使用非常旧的HTML标签和表来格式化和设置电子邮件样式,例如无表格前代码。

可悲但真实的是,对电子邮件的支持仍然非常差。