PHPMailer已发送消息,但已将客户端/服务器对话框返回到浏览器

PHPMailer已发送消息,但已将客户端/服务器对话框返回到浏览器,php,email,localhost,phpmailer,Php,Email,Localhost,Phpmailer,所以我搜索了Google和Stackoverflow,我有点惊讶我没有找到这个问题 我正在使用XAMPP/localhost和PHPmailer使用我的gmail电子邮件帐户向我的雅虎帐户发送电子邮件。发送和接收电子邮件时,一切都非常顺利,包括一个示例附件 问题是,我的浏览器在“发送成功”消息之前,显示的似乎是服务器/客户端在后台处理的每个步骤中的对话框 此处的示例输出: 2014-02-04 05:44:36 SERVER -> CLIENT: 220 mx.google.com ESM

所以我搜索了Google和Stackoverflow,我有点惊讶我没有找到这个问题

我正在使用XAMPP/localhost和PHPmailer使用我的gmail电子邮件帐户向我的雅虎帐户发送电子邮件。发送和接收电子邮件时,一切都非常顺利,包括一个示例附件

问题是,我的浏览器在“发送成功”消息之前,显示的似乎是服务器/客户端在后台处理的每个步骤中的对话框

此处的示例输出:

2014-02-04 05:44:36 SERVER -> CLIENT: 220 mx.google.com
ESMTP xv2sm62192389pbb.39 - gsmtp
2014-02-04 05:44:36 CLIENT -> SERVER: EHLO localhost
2014-02-04 05:44:36 SERVER -> CLIENT: 250-mx.google.com at your service, [171.6.91.113] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN 250-ENHANCEDSTATUSCODES 250 CHUNKING
2014-02-04 05:44:36 CLIENT -> SERVER: AUTH LOGIN
2014-02-04 05:44:36 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2014-02-04 05:44:36 CLIENT -> SERVER: a2hyZng0NDRAZ21haWwuY29t
2014-02-04 05:44:37 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2014-02-04 05:44:37 CLIENT -> SERVER: RnV0dXJlMTA= 
2014-02-04 05:44:38 SERVER -> CLIENT: 235 2.7.0 Accepted 
.
.  25 more lines of this stuff
.
2014-02-04 05:44:40 CLIENT -> SERVER: QUIT 
2014-02-04 05:44:40 SERVER -> CLIENT: 221 2.0.0 closing connection xv2sm62192389pbb.39 - gsmtp 
Message has been sent
我把换行符放进去使它更可读,但它在屏幕上显示为一个长字符串

这是代码。如何抑制此输出

require_once "../phpmailer/class.phpmailer.php";

$mail = new \PHPMailer(true); 

$mail->IsSMTP();
$mail->Host       = "smtp.gmail.com";
$mail->Port       = 465;
$mail->SMTPDebug  = 2;
$mail->SMTPAuth   = true;
$mail->SMTPSecure = 'ssl';
$mail->Username   = "xxx@gmail.com";
$mail->Password   = "xxx";
$mail->SetFrom('xxx@gmail.com', 'Randy S');
$mail->WordWrap = 50;

$mail->AddAddress('xxx@yahoo.com', 'Randy');
$mail->Subject = 'PHPMailer Test Subject';
$mail->Body     = "Hi! \n\n This is my first e-mail sent through PHPMailer."; 
$mail->AddAttachment('upload/names.txt');      // attachment

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

注释或删除此行,或将其设置为
0

$mail->SMTPDebug  = 2; 
它用于显示错误和消息

从PHPMailer站点:

$mail->SMTPDebug=2;//启用SMTP调试信息(用于 测试)
//1=错误和消息
//2=仅限信息


SMTPDebug
class.phpmailer.php
中定义,如下所示。根据这一点,您应该将
SMTPDebug
初始化为0。因此,不会显示任何命令或数据消息。此外,您还可以使用PHPMailer类的ErrorInfo字段查看发生错误时的错误消息

/**
 * SMTP class debug output mode.
 * Debug output level.
 * Options:
 * * `0` No output
 * * `1` Commands
 * * `2` Data and commands
 * * `3` As 2 plus connection status
 * * `4` Low-level data output
 * @type integer
 * @see SMTP::$do_debug
 */
public $SMTPDebug = 0;

我也面临同样的问题, 加

在邮件发送脚本中,在

$mail->WordWrap = 50;

它会工作的

对不起,这是重复的。我用不同的词搜索,最后在这里找到了答案:零“0”或“false”将适用于SMTPDebug参数。当您下载类库时,请阅读自述文件…这些信息非常基本,并且在其中。谢谢您,先生。。你的回答使我大吃一惊。。萨克斯
$mail->WordWrap = 50;