【发布时间】:2012-08-17 20:06:45
【问题描述】:
我使用 PHP 发送了一封 HTML 电子邮件,但我的客户将其作为纯代码接收。下面是发送邮件的 PHP 代码:
$subject = 'HTML e-mail test';
$message = '<html>
<body>
<h1>TEST</h1>
</body>
</html>';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: <".$to.">\r\n";
$headers .= "From: <".$email.">\r\n";
$mailb = mail($to, $subject, $message, $headers);
它对我来说很好,但他们收到它是:
Content-type: text/html; charset=iso-8859-1
To: <email@email.com>
From: <email@email.com>
<html>
<body>
<h1>TEST</h1>
</body>
</html>
我的标题有问题吗?还是他们的展望?
我该如何解决这个问题?
提前致谢!
【问题讨论】:
-
请使用数组,甚至是 nowdoc 语法来处理像这样的长 blob。 php.net/manual/en/…
-
@Incognito -
mail()中的标头是一个字符串,而不是一个数组,并且正式应该有以\r\n结尾的行(不仅仅是您系统的换行符的想法)。除非你正在考虑implode()他们在飞行中?您如何确保 nowdoc 具有正确的行尾? -
@ghoti 我正在谈论他与
.=的字符串构建操作。该数组将提供一个有意义的抽象,至少可以包括逻辑,帮助防止提供TO:字段bob@example.com\r\nTo: billgates@microsoft.com\r\n\r\nSpamSpamSpam\r\n.\r\n\r\n。 --此外,最好只使用您在下面建议的 geat 现有解决方案。
标签: php html outlook-2003