为什么phpmailer类会回显文本?

时间:2010-11-19 12:06:41

标签: php email phpmailer

当我发送电子邮件时,它会回显许多不必要的文本,我不希望打印出这些文本。我怎样才能禁用这些文字。

示例:

SMTP -> FROM SERVER:220 mx.google.com ESMTP p1sm1037082ybn.17
SMTP -> FROM SERVER: 250-mx.google.com at your service, [xxx.xxx.xxx.xxx] 250-SIZE 35651584 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH 250 ENHANCEDSTATUSCODES
SMTP -> FROM SERVER:250 2.1.0 OK p1sm1037082ybn.17
SMTP -> FROM SERVER:250 2.1.5 OK p1sm1037082ybn.17
SMTP -> FROM SERVER:354 Go ahead p1sm1037082ybn.17
SMTP -> FROM SERVER:250 2.0.0 OK 1290167720 p1sm1037082ybn.17

我正在使用class.phpmailer.php文件并使用$ obj.Send()方法发送电子邮件。 ??

感谢

4 个答案:

答案 0 :(得分:12)

PHPMailer有一个“调试”标志,可以关闭。

根据您使用的版本,可以将其命名为DebugSMTPDebug。当你看到它时,你会知道它。如有必要,请查看类文件以找出名称。

将其设置为false并且一切正常。

答案 1 :(得分:7)

默认情况下,它不应生成任何输出。确保它没有包装在print / echo语句/函数中。

解决方法可能是在邮件开头使用ob_start(),在邮件程序脚本末尾使用ob_get_clean(),以防止任何输出离开缓冲区。

答案 2 :(得分:6)

如上所述它是 SMTPDebug 选项,只需执行以下操作:

$mail->SMTPDebug = 0;

答案 3 :(得分:1)

如果您要从PHPMailer官方github页面的示例中选择整个配置集,则只需删除/注释以下行:-

 $mail->SMTPDebug = SMTP::DEBUG_SERVER;