【问题标题】:PHP mail returns TRUE, but e-mail is not sentPHP 邮件返回 TRUE,但未发送电子邮件
【发布时间】:2011-03-30 17:12:48
【问题描述】:

简单代码:

mail("my_email@gmail.com", $subject, $text);

它不发送电子邮件,但它仍然返回 TRUE。发生了什么?

附:就算我加了headers,结果也是一样的!

【问题讨论】:

  • 想提供一些关于您的服务器的信息?它是linux oder windows吗?你通过什么服务器发送?您是否能够通过您从 php 发送邮件的服务器使用邮件客户端发送电子邮件?

标签: php


【解决方案1】:

来自man page for mail()

如果邮件是,则返回 TRUE 成功接受交付, 否则为 FALSE。

重要的是要注意 因为邮件被接受 交付,它确实表示邮件 实际上会达到预期的 目的地。


除非你实际上检查线路以查看发生了什么,否则你真正在普通的 PHP 中基本上无能为力。我建议使用一些邮件库来指示邮件是否已发送(如果存在)

【讨论】:

    【解决方案2】:

    您知道电子邮件没有发送的事实吗?电子邮件可能会从您的 php 脚本发送到您的 SMTP 服务器,但会被丢弃在第一个 SMTP 服务器和 gmail 之间的某个位置。

    尝试查看网络流量以验证电子邮件是否正在使用类似于wireshark 的内容发送。

    【讨论】:

      【解决方案3】:

      查看@Neal 的评论。简单地返回true 意义不大。

      您应该检查您的 PHP.ini 并确保您的 SMTP 服务器设置正确(如果在 Windows 上)或者您的 sendmail 路径 (Linux) 正确。从那里检查您的 sendmail 配置。

      【讨论】:

        猜你喜欢
        • 2012-10-27
        • 1970-01-01
        • 2013-07-18
        • 1970-01-01
        • 2014-07-14
        • 2011-06-04
        • 1970-01-01
        • 2012-09-12
        • 2013-06-19
        相关资源
        最近更新 更多