【发布时间】:2015-03-09 21:50:54
【问题描述】:
如果我不指定任何标头,PHP 中的mail() 函数在发送到 Gmail 时可以正常工作。但是,一旦我尝试添加标题,该函数仍会返回 true 但我从未收到电子邮件。 Gmail 服务器似乎拒绝递送。
这些是我正在使用的标题:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: ' . $username . ' <' . $email . '>' . "\r\n";
$headers .= 'From: Blahblah <email@example.com>' . "\r\n";
mail($email, 'Subject', '<html><body>Body of message</body></html>', $headers);
我希望有人能指出我的缺陷?我直接从 PHP 手册中获取了大部分代码,因此可以理解我的困惑和沮丧。谢谢!
【问题讨论】:
-
“服务器拒绝投递”所以你在邮件服务器日志中若隐若现——它究竟说了什么?
-
mail()的第一个参数相当于“To:”,所以我不知道你为什么要在标题中添加它。 -
@Dagon
mail()函数返回 true,但电子邮件没有到达。这就是我知道服务器拒绝其交付的方式。 -
不,根本不是这个意思。 mail() 的所有返回都表明本地邮件代理接受了邮件
-
我使用谷歌应用程序,从来没有遇到过问题 50 美元/年...值得我的用户收到我的电子邮件而不是垃圾邮件。