php mail()不适用于gmail和hotmail

时间:2010-08-30 19:46:48

标签: php email

我正在尝试使用php中的mail()发送新系统生成的密码。问题是我能够将它发送到雅虎但是当我使用gmail或hotmail时,虽然函数返回true,但我没有收到任何电子邮件。以下是功能:

if(mail($to,$subject,$body))
{
   return true;
}
else
{
  return false;
}

7 个答案:

答案 0 :(得分:2)

它可能最终出现在垃圾邮件文件夹中。如果它确保您的电子邮件标题是完美的。

你可以通过图书馆了解你想要达到的目标。 Zend_Mail拥有连接到gmail和其他人所需的一切。

答案 1 :(得分:1)

如果您通过雅虎成功收到邮件,您还应该在问题中发布来自雅虎的邮件。我敢打赌,你需要包括一个“来自现场”才能通过hotmail,gmail等...

答案 2 :(得分:0)

您的问题可能是反垃圾邮件过滤器。从PHP发送的电子邮件通常被邮件服务器标记为垃圾邮件,最终被删除或者被垃圾邮件发送。

您可以Google for "php mail spam"获得有关如何解决此问题的一些提示。

答案 3 :(得分:0)

也许您在共享服务器上,并且由于服务器的其他用户(网站)发送垃圾邮件而导致IP被禁止/阻止。

尝试添加SPF条记录。

答案 4 :(得分:0)

确保将envelope-FROM(a.k.a。返回路径)设置为您有权访问的有效电子邮件地址。如果您没有在垃圾邮件文件夹中看到该邮件,则该邮件应该被退回;退回邮件可能会提供邮件未通过的原因。

答案 5 :(得分:0)

我会尝试在您的邮件功能中包含您自己的标题

$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);

答案 6 :(得分:0)

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

如果没有,请尝试使用邮件发送的标题更加努力。