无法从本地主机/XAMPP发送邮件

3

连接邮件服务器失败,邮件服务器地址为"mail.google.com",端口号为587,请在php.ini文件中验证您的"SMTP"和"smtp_port"设置,或使用ini_set()函数进行设置。

我已经配置了我的xampp php.ini和sendmail.ini文件,以便从我的PHP脚本中使用Gmail帐户发送电子邮件。我正在使用xampp。在更改[mail function]部分后,我的php.ini文件如下所示(为简洁起见,我已删除了注释行)

[mail function]
SMTP = mail.google.com
smtp_port = 587
mail.add_x_header = Off

我的sendmail.ini文件如下所示。
[sendmail]
smtp_server=mail.google.com
smtp_port=587
smtp_ssl=auto
error_logfile=error.log
auth_username=babar+gmail.com
auth_password=**********

那么我错过了什么?为什么会出现这个错误?

听起来像是网络连接问题。也许你的互联网服务提供商不允许在该端口上进行出站连接? - Pekka
请告诉我更多信息。如何解决这个问题? - buet_baba
2个回答

2
您正在使用错误的Gmail SMTP设置。正确的设置如下:
在php.ini文件中:
[mail function]
;SMTP = localhost
;sendmail_from = me@example.com
sendmail_path = "c:\sendmail\sendmail.exe -t -i"

在sendmail.ini文件中。
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls
auth_username=me@example.com
auth_password=**********

请注意:如果您已启用双重身份验证,您需要创建一个应用程序专用密码。


防火墙可以阻止对谷歌SMTP服务器的出站连接。 - user2286243
@VarunAgw,在sendmail.ini最后一行缺少分号,这样可以吗? - 151291
@151291 分号用于注释目的。分号后面的任何内容都将被解析器忽略。 - user2286243
@VarunAgw 但是我们可以在语句末尾使用吧?否则它们将如何从一个语句分离出来?它们看起来相同且在单行中...这就是为什么我问你的原因。谁会逐行阅读呢?变量和值如何区分? - 151291
@151291 我不太明白你的意思。每个语句都在新行中,因此它们是分开的。smtp_ssl=tls 等号前面的字符被视为变量,等号后面的字符被视为它们的值。 - user2286243
显示剩余7条评论

0

将smtp_ssl=auto设置为smtp_ssl=true

因为谷歌的smtp服务器需要ssl


我已经尝试过了,但是没有起作用。问题仍然存在。 - buet_baba

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