【问题标题】:PHP mail() function cannot send to hotmail?PHP mail() 函数无法发送到hotmail?
【发布时间】:2011-08-13 10:45:00
【问题描述】:

好的,我在互联网上搜索了答案 - 遗憾的是无济于事。我正在尝试使用 PHP mail() 函数发送邮件,以便会员可以按照链接进行注册。它适用于 Gmail、Yahoo!,但不适用于 Hotmail。请帮帮我!!!

   <?php
$headers .= 'To: <kenny.XXX@hotmail.com>' . "\r\n";
$headers .= 'From: <XXX@srv30.000webhost.com>' . "\r\n";
$headers .= 'Cc: XXX@srv30.000webhost.com' . "\r\n";
$headers .= 'Bcc: XXX@srv30.000webhost.com' . "\r\n";
$text="hello";
$text = str_replace("\n.", "\n..", $text);
mail('Kenny Worden:<kenny.XXX@hotmail.com>','Leos Realm account verification!',$text,$headers);
?>

如果这对任何人有帮助:

SMTP:本地主机(srv30.000webhost.com)

SMTP 端口:25

【问题讨论】:

  • 您是否查看过垃圾邮件文件夹,因为没有什么可以阻止它为一个邮件服务器而不是另一个邮件服务器工作。
  • 垃圾文件夹中什么都没有...为什么?
  • 您是否尝试过在另一台服务器上运行相同的脚本(它使用另一台 SMTP 服务器发送邮件)

标签: php email hotmail


【解决方案1】:

您的代码似乎不错。我的猜测是您的服务器端有问题,请检查邮件传递日志或让您的服务器管理员为您查看它们。可能是路由/dns 问题。

编辑: 我刚刚在我的服务器上尝试了该脚本,它运行良好。立即在我的 hotmail 地址上收到电子邮件。

【讨论】:

  • 你使用什么服务器?仍然没有骰子;(
  • 没什么特别的,一个与 hostgator 共享的 linux 服务器。
  • 您知道主机所在的操作系统是否会影响任何事情吗?我认为我的是 Windblows,但我必须仔细检查:P
  • 如果我理解正确,您是在共享主机上。与您的网络托管公司交谈,我相信他们会想出办法。
【解决方案2】:

您缺少作为第五个参数的字符串 "-f &lt;from address&gt;"

PHP Manual 指出您需要提供此信息,以便 MTA 发送信封上正确的“发件人”地址。在标题中设置它是不够的。这种愚蠢是我不推荐mail()并将人们指向php-mailer或类似的原因。

(“信封”是指一个 MTA 与另一个 MTA 进行的为传递电子邮件而进行的对话。)

【讨论】:

    【解决方案3】:

    代码很喜欢, 你做的任何让它看起来像垃圾邮件的事情都会阻止它从hotmail 尝试为您的域创建 spf 记录,甚至是签名

    检查您的邮件服务器是否被列入黑名单,这可能会导致问题 http://www.mxtoolbox.com/

    @staticsan 建议使用 php-mailer 或 http://swiftmailer.org/ 是您可以尝试使用的其他选项,可能会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2014-08-17
      相关资源
      最近更新 更多