对于初学者,您不应在电子邮件中使用 Javascript。 Webmail 客户端主要使用 JavaScript 运行界面,并不热衷于干扰您的电子邮件,桌面客户端过滤器通常将 JavaScript 视为垃圾邮件或网络钓鱼电子邮件的指标。
即使在它可能运行的情况下,在电子邮件中编写脚本也没有什么好处。将您的电子邮件保持为直接的 HTML 和 CSS,避免麻烦。
就 Outlook 开发而言,无需跟踪所有设备的所有元素。采用流畅的方法来构建您的电子邮件,它会在电子邮件客户端(是的,甚至 Outlook)之间优雅地降级。
从这篇文章开始:https://webdesign.tutsplus.com/tutorials/creating-a-future-proof-responsive-email-without-media-queries--cms-23919
使用他们提供的电子邮件模板here 作为入门模板并添加您自己的自定义样式。 将所有样式放在头部并在发送之前内联您的模板。
基本上该模板适用于所有主要客户。它也可以通过将正文包装在条件标签中来在 Outlook 中工作:
<!--[if (gte mso 9)|(IE)]>
<table width="600" align="center" style="border-spacing:0;font-family: Arial, Helvetica, sans-serif;color:#4d4d4d;" >
<tr>
<td style="padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;" >
<![endif]-->
[HTML EMAIL BODY GOES HERE]
<!--[if (gte mso 9)|(IE)]>
</td>
</tr>
</table>
<![endif]-->
并且通过在条件标记中包装两列、三列和四列行。
对于Outlook specific things,使用条件标签来定位不同版本的 Outlook。从上面的链接:
以此为目标的所有版本的 Outlook:
<!--[if (gte mso 9)|(IE)]>
[HTML code]
<![endif]-->
我对我的条件 CSS 使用相同的内容
<!--[if (gte mso 9)|(IE)]>
<style></style>
<![endif]-->
有时包含单独的条件 CSS 以仅针对 2007+
<!--[if mso]>
<style></style>
<![endif]-->
另外,我发现有条件的 CSS 真的很重要 !important 在那里,并且在它之前有一个空格。看起来您已经正确了,尽管您的规则背景之一是:蓝色;没有 !important。
所以,例如...
li {padding-left: 2px!important;}
行不通,你需要写:
li {padding-left: 2px !important;}
仔细检查正在输出的代码。即使您已经拥有它,一些 ESP 也会添加 !important,因此您可能还会以 !important !important 结束,这意味着它们将无法工作。
但在采用流畅的方法时,再次没有必要跟踪每个元素。 Outlook 条件标记中不会有那么多样式。很可能你只会有这样的东西:
<!--[if (gte mso 9)|(IE)]>
<style type="text/css">
table {border-collapse: collapse !important;}
</style>
<![endif]-->
还有我上面提到的条件标签中的其他 HTML。好好看看我上面链接的模板。您可以通过复制和粘贴表格行来移动布局以对其进行自定义以满足您的需求。
我在日常工作中每天都会编写 HTML 电子邮件,如果您有任何具体问题,请联系我们。