如果我没有指定任何标头,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手册中获取了大部分代码,因此我可以理解我的困惑和挫败感。谢谢!
答案 0 :(得分:3)
较大的电子邮件服务不会以这种方式传送从您自己的个人服务器发送的邮件 由于垃圾邮件问题。所有大型邮件提供商在接受您的邮件之前都需要SPF记录,DKIM和反向DNS。
Some live/hotmail user's are not receiving html mail
我个人更喜欢摆脱那种麻烦,并使用第三方邮件服务器为我的用户发送所有外发邮件。
答案 1 :(得分:0)
$Headers .= "From: $Yourname <$YourEmail>\r\n";
或
$Headers .= 'From: '.$Yourname.'<'.$Youremail.'>'."\r\n";
或
$Headers .= 'From: '.$Yourname.' <".$Youremail.">' . "\r\n";
试试这项工作是否有效?