繁体   English   中英

php mail()不适用于gmail和hotmail

[英]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);

尝试检查您的邮件服务器ip是否被列入黑名单?

如果不是,请尝试与邮件一起发送的标头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM