如何解决“无法与主机smtp.gmail.com建立连接”?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决“无法与主机smtp.gmail.com建立连接”?相关的知识,希望对你有一定的参考价值。
如果我确实在我的本地主机上发送电子邮件,它就可以了。没错
但我尝试登台服务器,它显示如下错误:
Swift_TransportException in StreamBuffer.php line 268:
Connection could not be established with host smtp.gmail.com [Connection timed out #110]
in StreamBuffer.php line 268
at Swift_Transport_StreamBuffer->_establishSocketConnection() in StreamBuffer.php line 62
at Swift_Transport_StreamBuffer->initialize(array('protocol' => 'tcp', 'host' => 'smtp.gmail.com', 'port' => '587', 'timeout' => '30', 'blocking' => '1', 'tls' => true, 'type' => '1', 'stream_context_options' => array())) in AbstractSmtpTransport.php line 113
at Swift_Transport_AbstractSmtpTransport->start() in Mailer.php line 79
at Swift_Mailer->send(object(Swift_Message), array()) in Mailer.php line 395
at Mailer->sendSwiftMessage(object(Swift_Message)) in Mailer.php line 217
...
我的环境是这样的:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=secret@gmail.com
MAIL_PASSWORD=secret
MAIL_ENCRYPTION=tls
从谷歌(Using gmail smtp via Laravel: Connection could not be established with host smtp.gmail.com [Connection timed out #110])的一些参考,我尝试一些答案。我尝试更改邮件端口和邮件加密如下:
MAIL_PORT=465
MAIL_ENCRYPTION=ssl
这是行不通的
我再试一次改变这个:
MAIL_DRIVER=sendmail
它也不起作用
我在这里做on
:https://myaccount.google.com/lesssecureapps
一样的
我尝试:
php artisan cache:clear
php artisan config:cache
它仍然无法正常工作
我的服务器使用gitlab,伪造laravel和数字海洋
登台服务器上的先前发送邮件有效,但在我在锻造laravel上重新安装存储库后,它现在不起作用
我需要设置什么?
几天前我遇到了完全相同的问题,我到处搜索了laracast stackoverflow和许多github问题,最后解决了问题。
你需要像这样的配置,
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=youremail@gmail.com
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=ssl
完成此设置后,您应确保关闭了Google帐户2 step verification
,因为这会增加额外的安全层,这就是无法建立连接的原因。
我认为这是Google最近添加的新功能。我以前工作过邮件配置,但最近相同的代码不起作用。
您可以转到您的Google帐户,在其中您会看到登录和安全标签。点击它然后你会看到那里的2步验证。然后你需要关闭它。然后我认为它会起作用。
这件事对我有用,我希望它对你也有用。我希望你明白。
这是因为登台服务器中的发送邮件配置。有两种解决方案可供选择。 1)一个是,使用您的域名为ex,example @ domainname.com创建一个电子邮件地址,然后使用您的提供商提供的设置更改电子邮件配置。 2)对于另一个解决方案需要知道您的laravel版本。
由于您没有提到您的服务器设置,我认为这可能与SELinux布尔值有关。
如果你的SELinux处于执行模式,你需要打开httpd_can_sendmail
和httpd_can_network_connect
布尔值。
您可以通过运行此命令来验证SELinux状态是否正在执行:
$ sestatus
...
Current mode: enforcing
...
检查httpd sendmail和网络连接布尔值的状态:
$ getsebool httpd_can_sendmail httpd_can_network_connect
httpd_can_sendmail --> off
httpd_can_network_connect --> off
要启用sendmail和网络连接,并在重新启动后保持更改:
$ sudo setsebool -P httpd_can_sendmail 1
$ sudo setsebool -P httpd_can_network_connect 1
以上是关于如何解决“无法与主机smtp.gmail.com建立连接”?的主要内容,如果未能解决你的问题,请参考以下文章