【问题标题】:Recently PHPMAILER stops sending mail最近 PHPMAILER 停止发送邮件
【发布时间】:2016-02-11 05:55:05
【问题描述】:

我已经搜索了很多但没有成功找到解决方案,之后我在这里提出问题。

我在许多网站上使用 phpmailer 将邮件发送到管理员的电子邮件地址。以下代码在过去几天运行良好,但最近我在某些网站中遇到错误,有些网站没有显示任何错误并打印“已发送邮件”但我没有收到电子邮件。

这是我的代码

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP

        try {
          $mail->Host       = "localhost"; // SMTP server
          $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
          $mail->AddAddress('ADMIN_ADDRESS');
          $mail->SetFrom($_REQUEST['email'], $_REQUEST['lname'] . ', ' . $_REQUEST['fname']);
          $mail->Subject = 'Contact Form';
          $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
          $mail->MsgHTML($body);
          $mail->Send();
        } catch (phpmailerException $e) {
          echo $e->errorMessage(); //Pretty error messages from PHPMailer
        } catch (Exception $e) {
          echo $e->getMessage(); //Boring error messages from anything else!
        }

注意:我在实时网站上遇到了这个问题。谢谢

【问题讨论】:

  • 您在此处使用默认的“邮件”传输,因此最可能的解释是您的本地邮件服务器有问题 - 检查您的邮件服务器日志。
  • 谢谢,我会检查服务器日志

标签: php html email smtp phpmailer


【解决方案1】:

Synchro 的评论很到位。如果您可以访问服务器上的本地 MTA,您应该检查它的日志,这些将显示 1) MTA 是否正在接收您的应用程序通过 PHPMailer 传递给它的消息,以及 2) 什么当 MTA 尝试将这些消息传递到收件人的 MX 时,就会发生这种情况。

如果无法访问本地 MTA 的日志,那么您可能希望更改您的 PHP 脚本以使用 PHPMailer 通过您拥有凭据的远程 SMTP 服务器发送传出消息,最好是允许您访问显示日志的服务器通过它中继的消息会发生什么。请参阅this example 了解如何使用 PHPMailer 通过远程 SMTP 服务器(在本例中为 smtp.gmail.com)发送。

【讨论】:

  • 感谢您的回复。我会要求客户在他的服务器上检查它的 MTA。
猜你喜欢
  • 2012-05-14
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
相关资源
最近更新 更多