phpmailer在发送电子邮件时打印一长串详细信息(客户端->服务器)


phpmailer prints long list of details (CLIENT -> SERVER) when sending email

我有一个使用 PHPMailer 的脚本。

当我运行它发送电子邮件时,PHPMailer 成功发送电子邮件。

但也回显一长串电子邮件发送信息(客户端 ->服务器),例如:

SERVER -> CLIENT: 220-server.mywebsitese.com ESMTP Exim 4.84 #2 Tue, 27 Jan 2015 08:37:57 +0200 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail.
CLIENT -> SERVER: EHLO www.mywebsite.com
SERVER -> CLIENT: 250-server.mywebsite.com Hello server.mywebsite.com [xx.xxx.xx.xx]250-SIZE 52428800250-8B9uLITMIME250-PIPELINING250-AUTH PLAIN LOGIN250-STARTTLS250 HELP
CLIENT -> SERVER: AUTH LOGIN
SERVER -> CLIENT: 334 VXNlcm5h9uLbWU6
CLIENT -> SERVER: bm9yZXBseUBsZWJh9uLbm9uLWxvdHRvLmNvbQ==
SERVER -> CLIENT: 334 UGFzc39uLdvcmQ6
.
.
.
.Very
.
.
.Long
.
.
.List of SERVER -> CLIENT / CLIENT SERVER
.
Message sent!

脚本由以下人员激活:

            if (!$mail->send()) {
            echo "Mailer Error: " . $mail->ErrorInfo;
            } else {
            echo "Message sent!";

我真正想要的是只发送电子邮件,打印消息已发送,不需要这个长列表。

这容易做到吗?

谢谢

这似乎是调试信息。尝试通过在创建 PHPMailer 实例后立即将 SMTPDebug 设置为 0 来禁用调试:

$mail = new PHPMailer();
$mail->SMTPDebug = 0;

使用$mail->SMTPDebug = 0;,它对我有用!

PHPMailer 有 4 个级别用于调试。调试以 0 结束。

  • SMTP::D EBUG_OFF (0):禁用调试(您也可以完全省略,默认值为 0)。
  • SMTP::D EBUG_CLIENT (1):输出客户端发送的消息。
  • SMTP::D EBUG_SERVER (2):作为 1,加上从服务器收到的响应(这是最有用的设置)。
  • SMTP::D EBUG_CONNECTION (3):作为 2,加上有关初始连接的详细信息 - 此级别可以帮助诊断 STARTTLS 故障。
  • SMTP::D EBUG_LOWLEVEL (4):作为3,加上更低级的信息,很冗长,不用于调试SMTP,只有低级问题。

有关更多详细信息,您可以查看PHPMailer的官方github帐户。

$mail->SMTPDebug = 0;这适用于我的脚本。