带有GMail的PHPMailer:SMTP错误

时间:2010-05-19 15:37:50

标签: php smtp phpmailer

我正在利用PHPMailer通过GMail发送邮件。我使用的代码直接来自教程,它在我的笔记本电脑上完美运行。但是,在Windows 2003 Server上测试它 - 似乎总是返回SMPT错误:

  

SMTP错误:无法连接到SMTP   主办。邮件错误:SMTP错误:可以   没有连接到SMTP主机。

以下是我在PHPMailer中使用的设置:

include("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // use ssl
$mail->Host = "smtp.gmail.com"; // GMAIL's SMTP server
$mail->Port = 465; // SMTP port used by GMAIL server

我可以放心地说这不是端口问题,因为我正在连接到端口465上的另一台服务器而且它正在发送邮件。如果没有,请解释。

如何解决此问题?

感谢大家的帮助

2 个答案:

答案 0 :(得分:4)

首先注意事项:Gmail使用TLS。不知道是否使用SSL代替TLS会产生很大的不同,但SSL是TLS的前身。

我建议也检查一下,它的phpmailer是为使用gmail而定制的。 PHPGMailer

答案 1 :(得分:2)

要将PHPMailer与gmail一起使用,请不要使用SSL / 465(自1998年以来已被弃用),使用TLS / 587作为Noctrine建议,以下是:

include 'phpmailer/class.phpmailer.php';
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = "tls://smtp.gmail.com"; // GMAIL's SMTP server
$mail->Port = 587; // SMTP port used by GMAIL server
...

你应该发现它有用。