我正在使用 PHP 本机mail()
函数发送 HTML 电子邮件,并且在用户最常见的电子邮件客户端 - Outlook 2007(以及其他一些电子邮件客户端)中存在格式问题 - 所有的 html 标记都被暴露,所以看起来像乱码非网络开发者。
我发送 HTML 电子邮件的方式与PHP 手册演示的方式相同。例子:
$message = get_HTML_email_with_valid_formatting();
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "From: example.com <info@example.com>\r\n";
$headers .= "Reply-To: donotreply@example.com\r\n";
mail('me@example.com', 'test', $message, $headers);
因为测试各种电子邮件客户端很困难,所以我注册了http://litmusapp.com/,所以我可以看到 47 个不同电子邮件客户端的电子邮件截图。大多数都可以(例如 gmail、thunderbird、Lotus Notes),但所有不同版本的 Outlook 都不好。
要解决格式问题,我执行了以下操作:
- 删除
$headers = "MIME-Version: 1.0\r\n";
邮件标题。 \n
确保我只用“ ”而不是“ ”结束我的标题\r\n
。
有谁知道为什么我在不符合手册的情况下使用 HTML 电子邮件会获得更好的结果?
信息:
- 我在 RHEL 5.5 上使用postfix版本 2.3.3。
- PHP 版本 5.3.2