[英]php mail() doesnt work for gmail and hotmail
我正在尝试使用php中的mail()
发送新的系统生成的密码。 问题是我能够将其发送到yahoo,但是当我使用gmail或hotmail时,尽管该函数返回true,但我没有收到任何电子邮件。 以下是功能:
if(mail($to,$subject,$body))
{
return true;
}
else
{
return false;
}
它可能最终出现在垃圾邮件文件夹中。 如果有,请确保您的电子邮件标题是完美的。
您可以调查想要实现的目标。 Zend_Mail具有连接gmail和其他人所需的一切。
如果您通过yahoo成功获取邮件,则还应该在问题中张贴来自yahoo的邮件头。 我敢打赌,您还需要添加“发件人字段”,才能通过hotmail,gmail等获得通过。
您的问题可能是反垃圾邮件过滤器。 从PHP发送的电子邮件通常被邮件服务器标记为垃圾邮件,最终被删除或放入垃圾箱。
您可以通过Google查找“ php邮件垃圾邮件”,以获取有关如何解决此问题的一些提示。
也许您在共享服务器上,并且该IP被服务器的其他用户(网站)发送垃圾邮件而被禁止/阻止。
尝试添加SPF记录。
确保将信封FROM(又名返回路径)设置为您有权访问的有效电子邮件地址。 如果您在垃圾邮件文件夹中没有看到该邮件,则该邮件应该被退回; 退回邮件可能提供有关邮件未通过的线索。
我会尝试在您的邮件功能中包含您自己的标头
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Date: ". date('r'). " \r\n";
$headers .= "Return-Path:youremail@domain.com\r\n";
$headers .= "Errors-To:youremail@domain.com\r\n";
$headers .= "From:youremail@domain.com <youremail@domain.com>\r\n";
$headers .= "Reply-to:youremail@domain.com \r\n";
$headers .= "Organization: YourOrg \r\n";
$headers .= "X-Sender:youremail@domain.com \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "X-MSMail-Priority: Normal \r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
mail($to,$subject,$body,$headers);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.