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账号。
我有一个使用 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账号。