【问题标题】:PHP mail() - Email not receivedPHP mail() - 未收到电子邮件
【发布时间】:2010-12-09 09:31:12
【问题描述】:

我在客户的网站上设置了 AJAX 联系表。

问题是电子邮件没有进入客户的收件箱。

我使用 Google Apps 设置客户端(与我为自己设置的方式相同)。

我使用了与我的电子邮件地址相同的联系表格,并且它有效。但是对于他们域中的任何电子邮件地址,它都不会!

域的所有成员都在接收“普通”电子邮件。

阻止 mail() 电子邮件通过的区别可能是什么?


更新

好的,所以我设法解决了它。事实证明,使用 CNAME 将域指向正确的服务器对于 sendmail 来说是不够的,所以我不得不将其更改为直接指向服务器的 A 记录。奇怪但真实。感谢大家的帮助,你给我指明了正确的方向:)

【问题讨论】:

  • 邮件是否进入垃圾箱?
  • 抱歉忘了说:不,不是
  • 将自己密送至域外的电子邮件和域中的额外电子邮件,看看是否收到。
  • 是否填充了电子邮件标题?没有它应该可以工作,但可能值得一看。
  • 客户收件箱中收到的

标签: php ajax email gmail


【解决方案1】:

这取决于你的服务器和接收端服务器的设置。

hotmail 例如需要使用正确配置的SPF records

许多邮件接收服务器(包括 hotmail)要求电子邮件来自Fully Qualified Domain Name。您从 PHP 发送的电子邮件很可能不符合此规则。 (它们很有可能来自“apache”)
hotmail self helphotmail postmaster info

PHP's mail() function 在您的邮件中不包含很多标题,因此您需要自己提供。

您的邮件在到达目的地的途中跳越多,就越有可能被标记为垃圾邮件。 因此,最好不要使用 PHP 的邮件功能,而是使用mail library 连接到 SMTP 服务器,就像您的桌面邮件应用程序一样。

总而言之,我会将赌注押在外部库上:Pear::Mail (documentation)

您也可以阅读:how do you make sure email you send programmatically is not automatically marked as spam

更新
SenderId 或 SPF 检查失败可能会使您的邮件在到达用户收件箱之前就被丢弃。消息不会出现在用户垃圾文件夹中,它会直接进入 /dev/null。 我知道这至少对于 hotmail 和 live mail 是正确的。我认为其他主机没有理由不实施相同的政策。

【讨论】:

  • 我完全同意这一点,但为什么它对我和其他使用相同设置的客户有效,但对这个客户无效?很奇怪!
  • 如果您曾经接受/回复/发送电子邮件到此地址,这将影响您接收服务器上的过滤器。并不是每台服务器都会检查 SPF 记录的一致性。
  • 您是说这条消息在到达用户帐户之前就会被丢弃吗?这样他们就没有踪迹了?如果这是真的,那将是电子邮件的巨大失败!
  • 不,SPF 记录是垃圾。根本不要配置它们,这无济于事。事实证明,垃圾邮件发送者比合法发送者更频繁地正确使用 SPF 记录;我确信 Hotmail 和所有其他提供商会忽略它们或给予它们负面评价 - 我为电子邮件安全供应商工作,我们当然会这样做。
  • 好吧,我使用 SPF,它们几乎消除了声称从我的域发送的垃圾邮件的数量。从那以后,我已经能够将我的电子邮件直接发送到客户的收件箱。所以他们绝对可以提供帮助。
【解决方案2】:

我建议改用 PHPMailer(包括他们的 SMTP)库。与邮件相比,它更可靠,并且允许您创建完全自定义的电子邮件。

http://phpmailer.worxware.com/

【讨论】:

  • 再次,我同意,但理解为什么它在这种情况下不起作用对我来说比“让它起作用”更有用
  • 邮件功能应该可以工作。通过本地 sendmail 发送邮件通常是发送邮件的最佳方式。
  • 我同意,然后使用它而不是花费数小时在论坛上询问为什么不可靠的 mail() 在这台特定的机器上对您不起作用。
  • @dusoft 这种评论对任何人都没有帮助!如果您所能做的就是向他们提出其他所有人(包括我自己)已经想到的一揽子解决方案,那么来这里帮助解决问题有什么意义!
  • 如果我冒犯了你,我很抱歉,但根据我的经验,尝试让 mail() 工作非常没有效率。我正在运行一个每天发送数十到数百封电子邮件的网站,如果我使用的是 mail(),这些电子邮件中的大多数都将无法送达。因此,从长远来看,我建议大家使用适当的 SMTP 库,例如 PHPMailer。就是这样。
猜你喜欢
  • 2013-10-04
  • 1970-01-01
  • 2015-07-27
  • 1970-01-01
  • 2016-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多