HTML邮件头部

6
我已经在我的Ubuntu服务器上设置了PHP和Postfix。我需要从PHP脚本发送HTML电子邮件。电子邮件成功发送,但被显示为包含HTML标记的纯文本。此外,一些标题也会在邮件中显示。
我猜想是与标题有关。我花费了将近一天的时间搜索可能的解决方案,但没有找到一个。以下是PHP代码:
$headers='';
$headers.="MIME-Version: 1.0 \r\n";
$headers.="Content-type: text/html; charset=\"UTF-8\" \r\n";
$headers.="From: ".FROM_EMAIL."\r\n";
mail($email, $vars['title'], $content, $headers);

编辑:

 $headers='';
 $headers.='MIME-Version: 1.0'."\r\n";
 $headers.='Content-type: text/html; charset=iso-8859-1'."\r\n";
 $headers.='From: Kinesioteip.ee<'.FROM_EMAIL.'>'."\r\n";
 $headers.='To: '.$email."\r\n";
 mail($email, $vars['title'], $content, $headers);

依旧没有运气...

Dagon,它足够有效,可以在浏览器中工作。 - user900547
srini,$vars ['title']是传递给发送电子邮件函数的变量。我认为目前这并不重要。 - user900547
我刚刚使用了你编辑的头文件,它们对我来说很好用。为什么不向我们展示完整的mail.php代码呢?也许是其他问题导致了问题。 - m-t
我最近遇到了同样的问题。类似的代码之前一直运行良好,但突然间就停止了。在Ubuntu 11.10 PHP5.3.6-13ubuntu3.6上运行失败,但是在Ubuntu 12.04上,PHP 5.3.10-1ubuntu3可以完美地工作。我猜测Ubuntu 11.10在处理PHP邮件方面出了问题。 - Endijs
m-t,你能给我那封电子邮件的源代码吗?我知道服务器会添加一些默认头部信息,也许与此有关。 - user900547
3个回答

6
    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    // Additional headers
    $headers .= 'To:' . "\r\n";
    $headers .= 'From: Admin<youremail@email.com>' . "\r\n";
    // Mail it
    mail($to, $subject, $message, $headers);

请再次查看第一篇帖子。我更改了标题,但没有成功。 - user900547

4
你能试着改变这些行吗?
$headers.="MIME-Version: 1.0 \r\n";
$headers.="Content-type: text/html; charset=\"UTF-8\" \r\n";

to

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

并查看它们是否有效。


-1

我认为你的第四个标题是错误的,因为FROM_EMAIL变量没有'$'。

请尝试。

        $headers.="From: ".$FROM_EMAIL."\r\n";

$vars['title'] 改为 $var

 mail($email, $vars, $content, $headers);

老兄,FROM_EMAIL是一个常量,不需要美元符号。我知道我传递给函数的变量是正确的。 - user900547

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接