8

我仍在试图弄清楚,为什么我不能在自定义电子邮件的正文中应用 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

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

4

5 回答 5

15

完成此操作后,我通常会在电子邮件正文中嵌入 CSS:

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

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

于 2009-12-19T21:10:23.007 回答
6

正如其他人所指出的,内联定义样式是最佳选择。以下是您可能会发现有用的几篇文章:

坚如磐石的 HTML 电子邮件

电子邮件客户端中的 CSS 支持指南

于 2009-12-20T13:04:22.567 回答
5

看来你做错了。

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

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

于 2009-12-19T21:11:11.303 回答
0

大多数邮件阅读器(基于桌面的和基于网络的)都不能很好地处理 CSS:通常最好不要使用外部 CSS 并使用内联样式,通常最好使用表格而不是 div 进行格式化,.. .

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

于 2009-12-19T21:08:02.433 回答
0

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

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

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

于 2009-12-20T11:14:57.500 回答