当我发送电子邮件时,它会回显许多不必要的文本,我不希望打印出这些文本。我怎样才能禁用这些文字。
示例:
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()方法发送电子邮件。 ??
感谢
答案 0 :(得分:12)
PHPMailer有一个“调试”标志,可以关闭。
根据您使用的版本,可以将其命名为Debug
或SMTPDebug
。当你看到它时,你会知道它。如有必要,请查看类文件以找出名称。
将其设置为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;