PHPMailer遇到问题 [英] Having trouble with PHPMailer
问题描述
我正尝试使用PHPMailer发送gmail电子邮件。我遵循此发布
函数sendEmail($ email,$ name)为了实现这个功能,我设置了一个如下所示的函数: {
$ mail = new PHPMailer();
$ mail-> IsSMTP(); //通过SMTP发送
// IsSMTP(); //通过SMTP发送我评论它cos它给出一个错误
$ mail-> SMTPAuth = true; //打开SMTP认证
$ mail->用户名='email@gmail.com'; //更改我的电子邮件
$ mail-> Password =password; //更改我的密码
$ mail-> From ='email@gmail.com';
$ mail-> FromName ='FROM NAME';
$ mail-> AddAddress($ email);
$ mail-> IsHTML(true); //以HTML格式发送
$ mail-> Subject =Subject;
$ mail-> Body =Body;
if(!$ mail-> Send()){
return false;
} else {
return true;
}
}
不幸的是,它一直返回false。你能告诉我代码有什么问题吗?
编辑:我得到的错误如下所示:
SMTP - >错误:无法连接到服务器:连接尝试失败,因为连接方在一段时间后没有正确响应,或建立的连接失败,因为连接的主机未能响应
SMTP错误:无法连接到SMTP主机。
更新代码:
$ Mail = new PHPMailer();
$ Mail-> IsSMTP(); //使用SMTP
$ Mail-> Host =smtp.gmail.com; //设置SMTP服务器
$ Mail-> SMTPDebug = 2; // 2启用SMTP调试信息
$ Mail-> SMTPAuth = TRUE; //启用SMTP验证
$ Mail-> SMTPSecure =tls; //安全连接
$ Mail->端口= 587; //设置SMTP端口
$ Mail->用户名= EMAIL; // SMTP帐户用户名
$ Mail->密码= PASS; // SMTP帐户密码
$ Mail->优先级= 1; //最高优先级 - 电子邮件优先级(1 =高,3 =正常,5 =低)
$ Mail-> CharSet ='UTF-8';
$ Mail->编码='8位';
$ Mail-> Subject ='SUB';
$ Mail-> ContentType ='text / html;字符集= UTF-8\r\\\
;
$ Mail-> From = EMAIL;
$ Mail-> FromName ='FROM NAME';
$ Mail-> WordWrap = 900; // RFC 2822符合每行最多998个字符
$ Mail-> AddAddress($ email); //收件人:
$ Mail-> isHTML(TRUE);
$ Mail-> Body =Hi;
$ Mail-> AltBody =Hi;
$ Mail->发送();
$ Mail-> SmtpClose();
($ ToEmail,$ MessageHTML,$ MessageTEXT){$ b $} 我试过这个脚本,发送了几条消息没有问题。 已更新: 这是Gmail成功获得的典型回应: b I am trying to use PHPMailer to send a gmail email. I followed this post In order to do this, I set up a function shown below: Unfortunately, it keeps on returning false. Can you please tell me whats wrong with the code? Edit: The error which I am getting is shown below: UPDATED CODE:
Here is a working example: I tried this script and had no problem sending several messages. UPDATED: This is the typical response from Gmail on success:
这篇关于PHPMailer遇到问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
< b require_once('class.phpmailer.php'); //根据需要添加路径
$ Mail = new PHPMailer();
$ Mail-> IsSMTP(); //使用SMTP
$ Mail-> Host =smtp.gmail.com; //设置SMTP服务器
$ Mail-> SMTPDebug = 2; // 2启用SMTP调试信息
$ Mail-> SMTPAuth = TRUE; //启用SMTP验证
$ Mail-> SMTPSecure =tls; //安全连接
$ Mail->端口= 587; //设置SMTP端口
$ Mail->用户名='MyGmail@gmail.com'; // SMTP帐户用户名
$ Mail->密码='MyGmailPassword'; // SMTP帐户密码
$ Mail->优先级= 1; //最高优先级 - 电子邮件优先级(1 =高,3 =正常,5 =低)
$ Mail-> CharSet ='UTF-8';
$ Mail->编码='8位';
$ Mail-> Subject ='使用Gmail测试电子邮件';
$ Mail-> ContentType ='text / html;字符集= UTF-8\r\\\
;
$ Mail-> From ='MyGmail@gmail.com';
$ Mail-> FromName ='GMail Test';
$ Mail-> WordWrap = 900; // RFC 2822符合每行最多998个字符
$ Mail-> AddAddress($ ToEmail); //收件人:
$ Mail-> isHTML(TRUE);
$ Mail-> Body = $ MessageHTML;
$ Mail-> AltBody = $ MessageTEXT;
$ Mail->发送();
$ Mail-> SmtpClose();
if($ Mail-> IsError()){// ADDED - 错误检查丢失
return FALSE;
}
else {
return TRUE;
}
}
$ ToEmail ='Name@example.com';
$ ToName ='Name';
$ Send = SendMail($ ToEmail,$ MessageHTML,$ MessageTEXT);
if($ Send){
echo< h2>发送正常< / h2>;
}
else {
echo< h2> ERROR< / h2>;
}
die;
?>
SMTP - > FROM SERVER:220 mx.google.com ESMTP 20sm6345523qek.6
SMTP - > FROM SERVER:250-mx.google.com为您服务,[181.155.13.39]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
SMTP - > FROM SERVER:220 2.0.0准备启动TLS
SMTP - > FROM SERVER:250-mx.google.com为您服务,[181.155.13.39]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
SMTP - > FROM SERVER:250 2.1.0 OK 20sm6345523qek.6
SMTP - > FROM SERVER:250 2.1.5 OK 20sm6345523qek.6
SMTP - > FROM SERVER:354继续20sm6345523qek.6
SMTP - > FROM SERVER:250 2.0.0 OK 1353474062 20sm6345523qek.6
SMTP - > FROM SERVER:221 2.0.0关闭连接20sm6345523qek.6
function sendEmail($email, $name) {
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
//IsSMTP(); // send via SMTP I commented it cos it gives an error
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = 'email@gmail.com'; // Changed my email
$mail->Password = "password";// Changed my password
$mail->From = 'email@gmail.com';
$mail->FromName = 'FROM NAME';
$mail->AddAddress($email);
$mail->IsHTML(true); // send as HTML
$mail->Subject = "Subject";
$mail->Body = "Body";
if (!$mail->Send()) {
return false;
} else {
return true;
}
}
SMTP -> ERROR: Failed to connect to server: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
SMTP Error: Could not connect to SMTP host.
$Mail = new PHPMailer();
$Mail->IsSMTP(); // Use SMTP
$Mail->Host = "smtp.gmail.com"; // Sets SMTP server
$Mail->SMTPDebug = 2; // 2 to enable SMTP debug information
$Mail->SMTPAuth = TRUE; // enable SMTP authentication
$Mail->SMTPSecure = "tls"; //Secure conection
$Mail->Port = 587; // set the SMTP port
$Mail->Username = EMAIL; // SMTP account username
$Mail->Password = PASS; // SMTP account password
$Mail->Priority = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low)
$Mail->CharSet = 'UTF-8';
$Mail->Encoding = '8bit';
$Mail->Subject = 'SUB';
$Mail->ContentType = 'text/html; charset=utf-8\r\n';
$Mail->From = EMAIL;
$Mail->FromName = 'FROM NAME';
$Mail->WordWrap = 900; // RFC 2822 Compliant for Max 998 characters per line
$Mail->AddAddress($email); // To:
$Mail->isHTML(TRUE);
$Mail->Body = "Hi";
$Mail->AltBody = "Hi";
$Mail->Send();
$Mail->SmtpClose();
<?php
function SendMail( $ToEmail, $MessageHTML, $MessageTEXT ) {
require_once ( 'class.phpmailer.php' ); // Add the path as appropriate
$Mail = new PHPMailer();
$Mail->IsSMTP(); // Use SMTP
$Mail->Host = "smtp.gmail.com"; // Sets SMTP server
$Mail->SMTPDebug = 2; // 2 to enable SMTP debug information
$Mail->SMTPAuth = TRUE; // enable SMTP authentication
$Mail->SMTPSecure = "tls"; //Secure conection
$Mail->Port = 587; // set the SMTP port
$Mail->Username = 'MyGmail@gmail.com'; // SMTP account username
$Mail->Password = 'MyGmailPassword'; // SMTP account password
$Mail->Priority = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low)
$Mail->CharSet = 'UTF-8';
$Mail->Encoding = '8bit';
$Mail->Subject = 'Test Email Using Gmail';
$Mail->ContentType = 'text/html; charset=utf-8\r\n';
$Mail->From = 'MyGmail@gmail.com';
$Mail->FromName = 'GMail Test';
$Mail->WordWrap = 900; // RFC 2822 Compliant for Max 998 characters per line
$Mail->AddAddress( $ToEmail ); // To:
$Mail->isHTML( TRUE );
$Mail->Body = $MessageHTML;
$Mail->AltBody = $MessageTEXT;
$Mail->Send();
$Mail->SmtpClose();
if ( $Mail->IsError() ) { // ADDED - This error checking was missing
return FALSE;
}
else {
return TRUE;
}
}
$ToEmail = 'Name@example.com';
$ToName = 'Name';
$Send = SendMail( $ToEmail, $MessageHTML, $MessageTEXT );
if ( $Send ) {
echo "<h2> Sent OK</h2>";
}
else {
echo "<h2> ERROR</h2>";
}
die;
?>
SMTP -> FROM SERVER:220 mx.google.com ESMTP 20sm6345523qek.6
SMTP -> FROM SERVER: 250-mx.google.com at your service, [181.155.13.39]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
SMTP -> FROM SERVER:220 2.0.0 Ready to start TLS
SMTP -> FROM SERVER: 250-mx.google.com at your service, [181.155.13.39]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
SMTP -> FROM SERVER:250 2.1.0 OK 20sm6345523qek.6
SMTP -> FROM SERVER:250 2.1.5 OK 20sm6345523qek.6
SMTP -> FROM SERVER:354 Go ahead 20sm6345523qek.6
SMTP -> FROM SERVER:250 2.0.0 OK 1353474062 20sm6345523qek.6
SMTP -> FROM SERVER:221 2.0.0 closing connection 20sm6345523qek.6