即使在连接到 gmail SMTP 后,使用 PHPMailer for gmail 时出现 SMTP 错误
SMTP error while using PHPMailer for gmail even after connecting to gmail SMTP
我正在尝试使用从本地主机操作的 PHPMailer 从我的 "gmail" 帐户发送邮件。我的浏览器出现这样的错误:
Connection: opening to ssl://smtp.gmail.com:587, timeout=300, options=array ()
SMTP ERROR: Failed to connect to server: (0)
SMTP connect() failed.
Mailer Error: SMTP connect() failed
用于发送邮件的php代码如下:
<?php
function Send_Mail($to,$subject,$body)
{
//require 'phpmailer/class.phpmailer.php';
require 'phpmailer/PHPMailerAutoload.php';
require 'phpmailer/class.phpmailer.php';
$from = "mysite.com";
$mail = new PHPMailer();
$mail->isSMTP();// use SMTP
$mail->SMTPDebug = 4;
$mail->Debugoutput = 'html';
//// enable SMTP authentication
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";// SMTP host
$mail->Port = 587;// set the SMTP port
$mail->SMTPAuth = true;
$mail->Username = "mymail@gmail.com"; // SMTP username
$mail->Password = "mypass"; // SMTP password
$mail->setFrom('from@example.com', 'First Last');
$mail->addReplyTo('replyto@example.com', 'First Last');
$mail->addAddress('whoto@example.com', 'John Doe');
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->msgHTML("the body of the mail");
$mail->AltBody = 'This is a plain-text message body';
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";}
//$mail->Subject = $subject;
//$mail->MsgHTML($body);
//$address = $to;
// $mail->AddAddress($address, $to);
//$mail->Send();
}
?>
我尝试了很多 tsl/ssl 和端口的不同排列,但都是徒劳的。我还 telnet smtp.gmail.com 587
检查与 gmailSMTP 的连接,结果如下所示:
Trying 74.125.130.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP ml6sm5492964pdb.69 - gsmtp
我是 PHP 的新手,过去 6 小时以来一直在努力解决这个问题。有什么想法吗?
如果问题很愚蠢,请提前道歉。
您的代码应基于 the provided gmail example。您正在尝试将 SMTPSecure = 'ssl'
与 Port = 587
一起使用。那行不通:将 tls
与端口 587 一起使用。您还把这些文件弄得一团糟。也许您应该尝试阅读文档?即使是自述文件中的示例也能正确地做到这一点。
我正在尝试使用从本地主机操作的 PHPMailer 从我的 "gmail" 帐户发送邮件。我的浏览器出现这样的错误:
Connection: opening to ssl://smtp.gmail.com:587, timeout=300, options=array ()
SMTP ERROR: Failed to connect to server: (0)
SMTP connect() failed.
Mailer Error: SMTP connect() failed
用于发送邮件的php代码如下:
<?php
function Send_Mail($to,$subject,$body)
{
//require 'phpmailer/class.phpmailer.php';
require 'phpmailer/PHPMailerAutoload.php';
require 'phpmailer/class.phpmailer.php';
$from = "mysite.com";
$mail = new PHPMailer();
$mail->isSMTP();// use SMTP
$mail->SMTPDebug = 4;
$mail->Debugoutput = 'html';
//// enable SMTP authentication
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";// SMTP host
$mail->Port = 587;// set the SMTP port
$mail->SMTPAuth = true;
$mail->Username = "mymail@gmail.com"; // SMTP username
$mail->Password = "mypass"; // SMTP password
$mail->setFrom('from@example.com', 'First Last');
$mail->addReplyTo('replyto@example.com', 'First Last');
$mail->addAddress('whoto@example.com', 'John Doe');
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->msgHTML("the body of the mail");
$mail->AltBody = 'This is a plain-text message body';
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";}
//$mail->Subject = $subject;
//$mail->MsgHTML($body);
//$address = $to;
// $mail->AddAddress($address, $to);
//$mail->Send();
}
?>
我尝试了很多 tsl/ssl 和端口的不同排列,但都是徒劳的。我还 telnet smtp.gmail.com 587
检查与 gmailSMTP 的连接,结果如下所示:
Trying 74.125.130.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP ml6sm5492964pdb.69 - gsmtp
我是 PHP 的新手,过去 6 小时以来一直在努力解决这个问题。有什么想法吗? 如果问题很愚蠢,请提前道歉。
您的代码应基于 the provided gmail example。您正在尝试将 SMTPSecure = 'ssl'
与 Port = 587
一起使用。那行不通:将 tls
与端口 587 一起使用。您还把这些文件弄得一团糟。也许您应该尝试阅读文档?即使是自述文件中的示例也能正确地做到这一点。