是否可以在不使用 MIME 的情况下使用包含 CSS 装饰的 PHP 发送 html 电子邮件?
Posted
技术标签:
【中文标题】是否可以在不使用 MIME 的情况下使用包含 CSS 装饰的 PHP 发送 html 电子邮件?【英文标题】:Is it possible to send an html email with PHP that inludes CSS decoration without using MIME? 【发布时间】:2011-07-23 03:40:04 【问题描述】:我需要发送一封带有 CSS 装饰的 php 电子邮件。我的代码现在可以很好地发送 html 电子邮件。但是,我似乎不知道如何装饰它。
这是我的代码:
//Message
$message = "<html>
<head>
<style type='text/css'>
#show border:solid 1px #c4c4c4; background-color:#f0f0f0; width:400px;
#red color:#F02311
#header font-size:14px
p color:#090127
</style>
<title>
Red-line
</title>
</head>
<body>
<div id='show'>
<a id='red' href='http://www.thered-line.com'>The Red-line</a>
</div>
<p>
Hi $first_name,
</p>
<p>
Your Red-line account is almost complete. To finish, go to <a href='www.thered-line.com'>The Red-line</a> and enter your eight digit confirmation code.
</p>
<p>
Your confirmation code is: <b>$code</b>
</p>
<p>
Sincerely,
</p> <br />
<p>
The Red-line Operator
</p>
</body>
</html>";
【问题讨论】:
一般来说,您不应该使用<style>
标记来设置电子邮件样式:您应该使用style="..."
属性将样式直接包含到HTML 中。
@Pascal MARTIN:很有趣,但为什么呢?
使用样式标签有什么问题?
据我所知,邮件客户端(两个软件都是网络邮件)往往难以处理未内联的样式。
在 web 邮件客户端(例如 gmail、yahoo 邮件)中忽略样式标签内的 css 定义的原因是,您的未内联的 css 定义可能会损坏/更改其页面布局。
【参考方案1】:
我建议您查看 http://www.email-standards.org/ 。 几个主要的 webmail 客户端删除或修改了一堆重要的 html 元素 - 包括
内联样式可防止您的邮件完全脱离样式。 从提到的页面中,您可以适当地组装自己的一组支持/需要的样式属性。
【讨论】:
【参考方案2】:我没有使用过 PHP 库,但是当我使用 .Net 创建邮件时,我从未包含像 <head>
或 <body>
这样的元素。我不认为 html 邮件消息被设计为完整的 Html 文档。
我建议您包含 <style>
元素,然后像这样直接进入您的内容:
<style type='text/css'>
#show border:solid 1px #c4c4c4; background-color:#f0f0f0; width:400px;
#red color:#F02311
#header font-size:14px
p color:#090127
</style>
<div id='show'>
<a id='red' href='http://www.thered-line.com'>The Red-line</a>
</div>
<p>
Hi $first_name,
</p>
<p>
Your Red-line account is almost complete. To finish, go to <a href='www.thered-line.com'>The Red-line</a> and enter your eight digit confirmation code.
</p>
<p>
Your confirmation code is: <b>$code</b>
</p>
<p>
Sincerely,
</p> <br />
<p>
The Red-line Operator
</p>
【讨论】:
以上是关于是否可以在不使用 MIME 的情况下使用包含 CSS 装饰的 PHP 发送 html 电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不解密的情况下检查加密的 S/MIME 消息是不是也被签名
在 Ruby 中,我可以在不使用正则表达式的情况下检查字符串是不是包含字母吗?