使用PHPMailer无法通过Google SMTP发送邮件

4
我正在尝试使用Google的SMTP和PHPMailer发送邮件,但无法使其正常工作。以下是我的代码:
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = "myemail@gmail.com";
$mail->Password = "**********";
$mail->Port = "465";

首先,我不完全理解'SMTPSecure'应填写什么,有些人说是'ssl',有些人说是'tls'。其次,对于'Port',我可以输入'465'或'587'。但是,这些组合都不起作用……请注意,我使用的是普通的Gmail帐户,而不是Google Apps。在我的Gmail帐户中,我已启用了'POP访问'。

我收到的错误信息是:“必须先发出STARTTLS命令”。这意味着SSL失败了,但我不知道为什么……

5个回答

6

好的,问题出在PHPMailer的版本上。 我升级到了PHPMailer 5版本,一切都很顺利。 之前我使用的是phpMailer 1.02版本。


在SourceForge页面上没有第5版,它只有2版。 - ladieu
对于搜索者:PHPMailer现在托管在GitHub上,网址为https://github.com/PHPMailer/PHPMailer。它已经多年没有在sourceforge上得到维护了。 - Synchro

5

当我使用CodeIgniter时,我在GMail上也遇到了类似的问题。

对我而言,更改主机选项解决了问题:

$mail->Host = "ssl://smtp.googlemail.com";

有点对我有用。我使用了“ssl://smtp.gmail.com”。 - Thupten

3

设置 $mail->SMTPDebug = 1; 它将为您提供有关此错误的更多信息。 很可能您会得到 "无法找到套接字传输“ssl”-您在配置PHP时是否忘记启用它"。要解决此问题,请从php.ini中的;extension=php_openssl.dll行中删除";"。

PS 我也喜欢XAMPP :)))


1

$host = "ssl://smtp.gmail.com"; $port = "465"

我把 SSL 改成了 ssl。现在它可以工作了。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接