最近PHPMAILER停止发送邮件

时间:2015-11-10 11:06:08

标签: php html email smtp phpmailer

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

我在许多网站上使用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!
        }

通知:我在直播网站上遇到此问题。感谢

1 个答案:

答案 0 :(得分:0)

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

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