php - 最近PHPMAILER停止发送邮件

标签 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!
        }

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

最佳答案

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

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

关于php - 最近PHPMAILER停止发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33628568/

相关文章:

php - 这个 HTML 右括号从哪里来?

php - 正确的连接语法

php - 左连接计数

html - 为内部具有特定元素的元素设置 CSS 属性

javascript - 使用 jquery 将 html 图像添加到 div/table

javascript - 提交后HTML显示php代码

javascript - 单选按钮扩展到下拉列表以获得更多选项

python - Django send_mail 返回 SMTPConnectError

perl - Perl OO用于创建和发送电子邮件的良好界面是什么?

java - 获取来自 Gmail 的最后 20 封电子邮件(Java Android)