风格化的电子邮件


Stylized E-Mail

我正在创建一个注册表,当您提交时,它会向您发送一封确认电子邮件。我希望我的电子邮件不仅仅是文本。

我不知道该怎么做或从哪里开始我试图搜索这个,我没有正确的关键字,因为什么都没有出现。我尝试添加 html 标签和样式,但它只是作为原始文本出现。

帮助?

$to      = 'user@gmail.com';
$subject = '2014 Comfirmation';
$message = "<h1>Test Header<h1>'r'n
<img src='"http://www.image.com/_newSite/img/logo.jpg'"/>
<p style='border:solid thin red'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc malesuada dui a dictum blandit. Suspendisse commodo tincidunt diam. Duis orci tellus, imperdiet et vestibulum vitae, aliquet sit amet velit. Aenean a massa eu neque interdum viverra. Donec interdum arcu neque, ac egestas lectus mattis a. Duis nec dictum mauris. In eget facilisis nibh. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean ac leo ut mauris aliquet gravida eget eu magna. Mauris ullamcorper sagittis risus, eu molestie mi iaculis eu. Proin ut elementum risus. Vivamus rhoncus ipsum elit, in ultrices quam elementum et.</p>
Line 2'r'n

Line 3

";
$headers = 'From: from@gmail.com' . "'r'n" .
    'Reply-To: from@gmail.com' . "'r'n" .
    'X-Mailer: PHP/' . phpversion();
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70, "'r'n");
// Send
@mail($to, $subject, $message, $headers);
您需要

在电子邮件标题中添加正确的Content-type

$headers = 'MIME-Version: 1.0' . "'r'n" .
           'Content-type: text/html; charset=iso-8859-1' . "'r'n" .
           'Reply-To: fake@gmail.com' . "'r'n" .
           'X-Mailer: PHP/' . phpversion();
默认情况下,邮件

客户端会将邮件视为文本,除非该邮件明确指定应将其视为 HTML。 现在,使HTML漂亮是完全不同的事情。 另请注意,HTML 邮件更有可能被过滤器视为垃圾邮件。 作为一般建议,不要过分使用样式。 少即是多。

我个人建议将PHPMailer之类的库用于HTML电子邮件,因为如果您还想制作电子邮件附件,那么祝PHP中的本机mail();好运

附带说明一下:

众所周知,HTML电子邮件很难正确处理,因为雅虎和GMAIL等各种邮件服务都有解析算法来删除潜在的恶意代码。

谷歌邮箱

  • 不能使用内部样式表
  • 解析可能会被随机字符捕获,它将删除整个内联样式,例如padding-left:10px;

雅虎

  • 支持内部样式表,但很有可能搞砸
  • 解析可能会被随机字符捕获,它将删除整个内联样式,例如padding-left:10px;

展望

  • 似乎对样式表和内联样式做得很好,除非客户端出于安全原因禁用了 HTML 电子邮件