phpmailer 在发送电子邮件时打印一长串详细信息 (CLIENT -> SERVER)

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!";

我真正想要的是只发送电子邮件,打印 MESSAGE SENT,不需要这么长的列表..

这容易做到吗?

谢谢

这似乎是调试信息。在创建 PHPMailer:

的实例后,立即通过将 SMTPDebug 设置为 0 来尝试禁用调试
$mail = new PHPMailer();
$mail->SMTPDebug = 0;

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

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

  • SMTP::DEBUG_OFF (0): 禁用调试(你也可以完全忽略它,0 是默认值)。
  • SMTP::DEBUG_CLIENT (1): 输出客户端发送的消息。
  • SMTP::DEBUG_SERVER (2): 为 1,加上从服务器收到的响应(这是最有用的设置)。
  • SMTP::DEBUG_CONNECTION (3): 为 2,加上有关初始连接的更多信息 - 此级别可以帮助诊断 STARTTLS 故障。
  • SMTP::DEBUG_LOWLEVEL (4): as 3, 加上更底层的信息,非常冗长,不要用于调试 SMTP,只有 low级问题。

更详细的信息可以查看PHPMailer的官方github账号。