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

9
我仍在努力弄清楚为什么我无法在自定义电子邮件的正文中应用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
更新:首先感谢您的评论。邮件本身与样式表没有任何关联。除了附加样式表到电子邮件之外,我还有哪些选项?

1
我有点困惑。电子邮件正文中的HTML如何引用您的样式表? - Michael Petrotta
我不清楚网页本身在哪里。请澄清一下。最好提供一个简短但完整的程序... - Jon Skeet
您好!我已将相关信息添加到上面的更新中。谢谢。 - OrElse
这里有一篇关于编写HTML电子邮件的好文章:http://24ways.org/2009/rock-solid-html-emails - Paul D. Waite
5个回答

18

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

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

避免在HTML电子邮件中引用外部实体(如样式表、图像等)。根据用户的邮件代理设置,这些引用可能不可用。此外,了解邮件代理中的HTML支持。它可能没有您期望的那么丰富。例如,这里有关于Outlook的一些信息

7

非常感谢您提供的资源,对我很有帮助。 - Bhimbim

6

看起来你的做法是错误的。

你的CSS应该是内联的,而不是外部的。然后你只需要将所有HTML和CSS样式放在电子邮件的主体中,它就能够工作。

你真的要避免引用外部文件,因为许多电子邮件应用程序会阻止这些引用。


0

大多数邮件阅读器(包括桌面和基于Web的)都不太擅长处理CSS:通常最好不要使用外部CSS,而是使用内联样式,对于格式化,使用表格比使用div更好...

那么,你的CSS在哪里?它至少在某个服务器上吗?
(即它不应该仅存在于您的本地计算机上,而应通过某种URL进行访问)


0

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

最好使用非常旧的HTML标记和表格来格式化和样式化电子邮件,例如pre-tableless代码。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接