PHPMailer $ mail-> send()显示页面上的结果

时间:2017-03-01 22:10:40

标签: php html smtp phpmailer

我让PHPMailer通过Gmail工作。我已经给自己发了一封电子邮件,以测试它是否正常工作,确实如此。用户在index.php上提交注册表单(非常基本的设置),然后触发发送电子邮件。

我的问题是,在提交表单之后,它会向页面“回显”它正在经历的过程:要理解它,这是开始(3000个字符,所以我只包括一点):< / p>

2017-03-01 21:25:36 Connection: opening to smtp.gmail.com:587, timeout=300, options=array ( ) 2017-03-01 21:25:36 Connection: opened 2017-03-01 21:25:36 SERVER -> CLIENT: 220 smtp.gmail.com ...

直接显示在页面上。我确信通过在成功时重定向到另一个页面可以绕过它,但是首先不能将所有信息打印到页面上要容易得多。我已经测试了我的代码,它肯定是触发它的$mail->send();命令。

这是我用来调用PHPMailer的代码(它位于<?php?>标签内。

require_once "phpmailer/PHPMailerAutoload.php";

$mail = new PHPMailer;

$mail->SMTPDebug = 3;
$mail->isSMTP();                                   
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;                               
$mail->Username = "myemailaddress@gmail.com";                 
$mail->Password = "mypassword";                           
$mail->SMTPSecure = "tls";
$mail->Port = 587;     

$mail->From = "myemailaddress@gmail.com";
$mail->FromName = "my name";
[![enter image description here][1]][1]
$mail->addAddress("towhoever@gmail.com", "their name");

$mail->isHTML(true);

$mail->Subject = "Testing email for phpmailer";
$mail->Body = "<i>Mail body in HTML</i>. It worked!";
$mail->AltBody = "This is the plain text version of the email content. Also, it worked!";

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

混杂。系统信息,如果有帮助:我在Windows 10上使用XAMPP,在localhost中运行。我已连接到我的Gmail帐户。

以下是页面上的问题(我没有截图,因为我不确定敏感信息有多少): Screenshot of the problem

2 个答案:

答案 0 :(得分:2)

PhpMailer可以选择调试。

$mail->SMTPDebug  // enables SMTP debug information (for testing)

// 1 = errors and messages

// 2 = messages only

评论$ mail-&gt; SMTPDebug = 3;在代码中。

答案 1 :(得分:0)

$ mail-> SMTPDebug = 0; //所有功能正常工作后,将其设置为0;