PHPMailer 无法连接到 debian 下的 google smtp 服务器
PHPMailer fails to connect to google smtp server under debian
我正在尝试使用 PHPMailer 发送电子邮件。这是我发送电子邮件的功能。它在 Ubuntu 14.04.
的本地主机上运行良好
function smtpMail($to, $from, $from_name, $subject, $body) {
$mail = new PHPMailer;
$mail->IsSMTP(); // tells PHPMailer to use SMTP
$mail->Host = gethostbyname('smtp.gmail.com'); // sets the hostname of the mail server
$mail->Port = 587; // sets the SMTP port number
$mail->SMTPSecure = 'tls'; // sets the encryption system to use
$mail->SMTPDebug = 2; // debug level
$mail->SMTPAuth = true; // whether to use SMTP authentication
$mail->Username = 'jdoe@company.org'; // username to use for SMTP authentication
$mail->Password = 'qwerty'; // password to use for SMTP authentication
$mail->CharSet = 'UTF-8';
$mail->IsHTML(true);
$mail->setFrom($from, $from_name); // sets who the message is to be sent from
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($to);
if (!$mail->Send ()) {
return 'Mail error: ' . $mail->ErrorInfo;
//return 'KO';
}
return 'OK';
}
现在我正在尝试将它部署到服务器上。代码是一样的,但它不再工作了。服务器是 debian 8.2 中的 apache2 运行。
PHPMailer 打印这些行。
2015-12-09 13:35:41 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
2015-12-09 13:35:41 SMTP Error: Could not connect to SMTP host.
2015-12-09 13:35:41 CLIENT -> SERVER: QUIT
2015-12-09 13:35:41 SERVER -> CLIENT:
2015-12-09 13:35:41 SMTP ERROR: QUIT command failed:
来自服务器的以下命令运行良好:
dig smtp.gmail.com
ping smtp.gmail.com
telnet smtp.gmail.com
我尝试使用 telnet 发送电子邮件,它也能正常工作。我关注了这个tutorial(抱歉是法语)
我做错了什么?
好的我找到了答案
看来我的证书不匹配。
我正在尝试使用 PHPMailer 发送电子邮件。这是我发送电子邮件的功能。它在 Ubuntu 14.04.
的本地主机上运行良好function smtpMail($to, $from, $from_name, $subject, $body) {
$mail = new PHPMailer;
$mail->IsSMTP(); // tells PHPMailer to use SMTP
$mail->Host = gethostbyname('smtp.gmail.com'); // sets the hostname of the mail server
$mail->Port = 587; // sets the SMTP port number
$mail->SMTPSecure = 'tls'; // sets the encryption system to use
$mail->SMTPDebug = 2; // debug level
$mail->SMTPAuth = true; // whether to use SMTP authentication
$mail->Username = 'jdoe@company.org'; // username to use for SMTP authentication
$mail->Password = 'qwerty'; // password to use for SMTP authentication
$mail->CharSet = 'UTF-8';
$mail->IsHTML(true);
$mail->setFrom($from, $from_name); // sets who the message is to be sent from
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($to);
if (!$mail->Send ()) {
return 'Mail error: ' . $mail->ErrorInfo;
//return 'KO';
}
return 'OK';
}
现在我正在尝试将它部署到服务器上。代码是一样的,但它不再工作了。服务器是 debian 8.2 中的 apache2 运行。 PHPMailer 打印这些行。
2015-12-09 13:35:41 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
2015-12-09 13:35:41 SMTP Error: Could not connect to SMTP host.
2015-12-09 13:35:41 CLIENT -> SERVER: QUIT
2015-12-09 13:35:41 SERVER -> CLIENT:
2015-12-09 13:35:41 SMTP ERROR: QUIT command failed:
来自服务器的以下命令运行良好:
dig smtp.gmail.com
ping smtp.gmail.com
telnet smtp.gmail.com
我尝试使用 telnet 发送电子邮件,它也能正常工作。我关注了这个tutorial(抱歉是法语) 我做错了什么?
好的我找到了答案
看来我的证书不匹配。