Swiftmailer:无法与主机smtp.gmail.com建立连接[连接超时#110]

Jon*_*han 18 php email swiftmailer symfony

我发帖是因为我已经完成了其他问题的解决方案,但他们没有帮助.

我想要做的是通过Google Apps for Business Gmail使用Swiftmailer发送电子邮件,但我一直收到此错误:

无法通过主机smtp.gmail.com建立连接[连接超时#110]

我知道代码很好,因为它可以在我的本地机器上运行,但不能在生产服务器上运行.

到目前为止我尝试了什么:

  • 启用OpenSSL.
  • 来自Google验证码的未屏蔽帐户.
  • 使用应用程序专用密码.
  • 列入白名单的Gmail SMTP IP地址

组态:

# Swiftmailer Configuration
swiftmailer:
    transport:  smtp
    encryption: ssl
    auth_mode:  login
    host:       smtp.gmail.com
    username:   contact@mydomain.com
    password:   applicationspecificpassword
    port:       465
Run Code Online (Sandbox Code Playgroud)

我还能尝试什么?这可能是一个DNS问题,因为我使用的是Gmails SMTP MX记录而不是服务器.

iku*_*ris 11

以下步骤对我有用:

  1. 检查httpd_can_sendmail是否已打开,运行此命令getsebool httpd_can_sendmail

    • 当你得到:httpd_can_sendmail - >关闭,运行setsebool -P httpd_can_sendmail 1
    • 当你得到:httpd_can_sendmail - >关于第2步的好转.
  2. 检查httpd_can_network_connect是否打开,运行 getsebool httpd_can_network_connect

    • 当你得到httpd_can_network_connect - > off runsetsebool -P httpd_can_network_connect 1
    • 当你得到:httpd_can_network_connect - >关于第3步的好转.
  3. smtp使用以下设置: 'host' => '64.233.166.108' 'port' => '465'

我正在使用Centos

  • 这个答案真棒!救救我的命,谢谢。如果您使用的是** CentOS **,则必须看看 (2认同)

Moh*_*ini 10

更换:smtp.gmail.com173.194.65.108实际工作对我!


小智 3

如果你想重新使用 Gmail,我刚刚遇到了同样的问题 - 代码在我的本地计算机上运行,​​但在真实的服务器上运行失败 - 并且我认为我已经找出导致它的原因(至少在我的情况下) )。

看起来,如果服务器支持 IPv6 和 IPv4,则该服务器的域将解析为其 IPv6 版本,因此 PHP 会尝试连接到该版本。但我发现 smtp.gmail.com 没有响应,因此 30 秒后脚本就放弃并超时。您可能认为 PHP 会在 IPv6 失败后尝试 IPv4,但事实并非如此。

因此,当我交换 smtp.gmail.com 的 IPv4 地址(通过 ping 得到)时,一切正常并且电子邮件已发送。使用 IP 代替域并不理想,因为它可能会发生变化,但至少它可以节省挖掘服务器其余部分的麻烦:)