php邮件功能无法将html电子邮件发送到hotmail和aol地址
Posted
技术标签:
【中文标题】php邮件功能无法将html电子邮件发送到hotmail和aol地址【英文标题】:php mail function failed to send html email to hotmail and aol address 【发布时间】:2014-06-11 20:05:08 【问题描述】:我创建了一个 html 时事通讯,我想使用 php mail() 函数将时事通讯发送到用户数据库中的客户电子邮件地址。在此之前,我测试了包括 gmail、hotmail、AOL 和 yahoo 的伺服地址。 gmail 和 yahoo 立即收到 html 格式的电子邮件,一切正常(样式和图像按设计显示),但是 hotmail 和 AOL 收不到任何东西。我测试使用mail() 向hotmail 和AOL 发送简单的文本电子邮件,等待很长时间(一晚)后,他们能够收到文本格式的电子邮件。所以我不知道hotmail和AOL有什么问题。有没有人遇到同样的问题并知道如何解决?
这是我的标题设置
$subject = 'News Letter';
$headers = "From: sales@example.com\r\n";
$headers .= "Reply-To: sales@example.com\r\n";
$headers .= "Return-Path:sales@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($email, $subject, $message, $headers);
【问题讨论】:
我认为,问题隐藏在邮件服务器权限中。不在代码中。 【参考方案1】:确保你的 $message 有正确的 html 并且也有标签。您可以尝试发送真实的电子邮件,一些较大的公司会阻止垃圾邮件。如果您的信息只是“测试”或“测试”,那么您可能永远不会得到它。如果您从共享托管服务器或 IP 发送,您可能还会遇到被阻止的问题。
肯定的解决办法是设置一个实际的电子邮件帐户,并使用 SMTP 通过那里发送邮件。
这是一个使用 PHPMailer() 的 SMTP 答案。
Sending email with PHP from an SMTP server
【讨论】:
嗨,Stomo21。通过主机 SMTP 和 PHPMailer 类发送邮件解决了所有问题!非常感谢!!【参考方案2】:检查您是否为From:
标头中使用的域设置了 SPF 记录。
作为垃圾邮件保护,这些服务可能会检查您的服务器是否被允许为该域发送电子邮件(设置 SPF 记录解决了我的问题,即 Google 将我的服务器发送的邮件标记为垃圾邮件,AOL 或 Hotmail 可能更具限制性。 .)
关于 SPF 记录的更多信息可以在这里找到:https://en.wikipedia.org/wiki/Sender_Policy_Framework
还可以查看 DKIM:https://en.wikipedia.org/wiki/DKIM,这也可能有助于保证电子邮件传递。
【讨论】:
以上是关于php邮件功能无法将html电子邮件发送到hotmail和aol地址的主要内容,如果未能解决你的问题,请参考以下文章