【问题标题】:mail() isn't mailingmail() 没有邮寄
【发布时间】:2010-11-24 15:42:23
【问题描述】:
$mailHeaders = "From: webmaster@{$_SERVER['HTTP_HOST']}\r\n" .
            "Reply-To: myemail@gmail.com\r\n" .
            "X-Mailer: PHP/" . phpversion();
if (!mail($tol, $subject, $mailMessage, $mailHeaders))
{
    echo "<br />Mail failed to send. Sorry.";
}

它没有回显Mail failed to send. Sorry.,所以我知道它的发送。但我没有在我的收件箱中收到它。我不知道为什么。

啊哈,找到了一个邮件队列,并在那里找到了电子邮件。尝试再次发送它们,我得到了这个:

retry time not reached for any host

请你们关闭这个以转移到服务器故障,好吗? :)

【问题讨论】:

  • 是的。我可能应该提到这一点。
  • 如果PHP返回true,不代表邮件已经发送。邮件服务器在收到邮件后仍然可以拒绝邮件。
  • @Lekensteyn 那么我怎么知道这是否是问题所在?
  • 您使用的是本地主机服务器吗?
  • 不,我使用的是来自 santrex.net 的 VPS

标签: php email


【解决方案1】:

您检查过垃圾邮件文件夹吗?我之前遇到过这个问题...

【讨论】:

  • 是的,已经刷新了 20 分钟
【解决方案2】:

如果是 VPS,我猜你有 SSH 访问权限。我会试试的

tail -f /var/log/mail.*

查看邮箱对您的邮件做了什​​么。

【讨论】:

  • tail: 无法打开 `/var/log/mail.*' 进行阅读:没有这样的文件或目录
  • 这是 ubuntu 保存日志的地方。根据您的 linux 服务器,您可能需要查看其他地方。
【解决方案3】:

有些邮件服务器很难管理。

PHP Mailer 用它简单易用的插件挽救了我的生命。消除 PHP 电子邮件的所有复杂性和神秘性。它使 HTML 电子邮件变得轻而易举,也使邮件附件变得非常简单。试试看。

我有同样的问题,没有电子邮件实际上是 senyt。为了解决我的问题(主要在于我的服务器 Go Daddy),我必须直接与 SMTP 主机地址通信。这是我从 Go Daddy 服务器中获取电子邮件的唯一方法。因此,换句话说,几乎以与在 Outlook 中设置电子邮件帐户类似的方式设置我的 PHP 电子邮件。除了使用我服务器的公共 SMTP 网关。

http://phpmailer.worxware.com/

希望这能让您更接近您的解决方案!

W.

【讨论】:

  • 我宁愿解决问题也不愿找到快速的解决方法,但还是谢谢
【解决方案4】:

愚蠢的建议:预览邮件功能的变量,在if 条件之前尝试echo $tol, $subject, $mailMessage, $mailHeaders;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    相关资源
    最近更新 更多