Why is PHP mailer printing mimeheader to screen after send?

你离开我真会死。 提交于 2020-02-02 12:56:28

问题


Here is the problem, I have just implemented PHPMailer and it is printing the Mime Header to the screen after the email is sent. I am using the latest PHPMailer code listed on GITHUB, and I have gone through virtually everything but cant find any reason why this is printing to the screen. Let me know if you need anymore information. I cant seem to think of anything else. See below:

2013-09-30 20:37:14 CLIENT -> SERVER: AUTH LOGIN
2013-09-30 20:37:14 CLIENT -> SERVER: ZGFwaWVjaG9jxXlAZ21haWwuY29t
2013-09-30 20:37:14 CLIENT -> SERVER: ZHBpZT5HNzE=
2013-09-30 20:37:15 CLIENT -> SERVER: MAIL FROM:<xxxxx@xxxxxx.com>
2013-09-30 20:37:15 CLIENT -> SERVER: RCPT TO:<yyyyy@yyyyyyy.com>
2013-09-30 20:37:15 CLIENT -> SERVER: DATA
2013-09-30 20:37:15 CLIENT -> SERVER: Date: Mon, 30 Sep 2013 16:37:14 -0400
2013-09-30 20:37:15 CLIENT -> SERVER: Return-Path: <xxxxx@xxxxxxx.com>
2013-09-30 20:37:15 CLIENT -> SERVER: To: Someone <yyyyyy@yyyyyyyy.com>
2013-09-30 20:37:15 CLIENT -> SERVER: From: xxxxxxx xxxxx <xxxxx@xxxxxxx.com>
2013-09-30 20:37:15 CLIENT -> SERVER: Subject: xxxxxxx.com Confirmation
2013-09-30 20:37:15 CLIENT -> SERVER: Message-ID: <c22a17772edd75gh89td324ac0fe67ae@localhost>
2013-09-30 20:37:15 CLIENT -> SERVER: X-Priority: 3
2013-09-30 20:37:15 CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.7 (https://github.com/PHPMailer/PHPMailer/)
2013-09-30 20:37:15 CLIENT -> SERVER: MIME-Version: 1.0
2013-09-30 20:37:15 CLIENT -> SERVER: Content-Type: multipart/alternative;
2013-09-30 20:37:15 CLIENT -> SERVER:   boundary="b1_c22a17772edd75gh89td324ac0fe67ae"
2013-09-30 20:37:15 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER: --b1_c22a17772edd75gh89td324ac0fe67ae
2013-09-30 20:37:15 CLIENT -> SERVER: Content-Type: text/plain; charset=iso-8859-1
2013-09-30 20:37:15 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER: This is the text body of the message, it is 
2013-09-30 20:37:15 CLIENT -> SERVER: printed here.  blah blah blah
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER: --b1_c22a17772edd75gh89td324ac0fe67ae
2013-09-30 20:37:15 CLIENT -> SERVER: Content-Type: text/html; charset=iso-8859-1
2013-09-30 20:37:15 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER: This is the alternate text body for non-html email that may or may no be reading this.
2013-09-30 20:37:15 CLIENT -> SERVER: This is also the text body
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER: --b1_c22a17772edd79e8f6fd324ac0fe67ae--
2013-09-30 20:37:15 CLIENT -> SERVER:
2013-09-30 20:37:15 CLIENT -> SERVER: .
2013-09-30 20:37:16 CLIENT -> SERVER: QUIT

Here is the implementing code:

require("class.phpmailer.php");

$mail = new PHPMailer;

$mail->From = 'xxxxx@xxxxxxx.com';
$mail->FromName = 'xxxxxxx xxxxx';
$mail->addAddress($email, $fname);                  
$mail->addReplyTo('', '');
$mail->IsSMTP();                            
$mail->SMTPDebug = 1;                       
$mail->SMTPAuth = true;                         
$mail->SMTPSecure = 'ssl';                      
$mail->Host = "smtpout.secureserver.net ";
$mail->Port = 465;                          
$mail->Username = "xxxxx@xxxxxxx.com";
$mail->Password = "password";
$mail->WordWrap = 50;                                       
$mail->isHTML(true);                                        

$mail->Subject = 'xxxxxxx.com Confirmation';
$mail->Body    = "This is the text body of the message, it is printed here.  blah blah blah";
$mail->AltBody = "This is the alternate text body for non-html email that may or may no be reading this.<br />This is also the text body";

if(!$mail->send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}

回答1:


You need set

$mail->SMTPDebug = false;  



回答2:


Personally, I expected SMTPDebug to write to the error_log rather than echo to the screen.

Add this to your PHPMailer configuration to enable this behavior:

$mail->Debugoutput = 'error_log';

Thankfully this is supported, just not the default.



来源:https://stackoverflow.com/questions/19117816/why-is-php-mailer-printing-mimeheader-to-screen-after-send

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!