php - Swift_TransportException·无法与主机 smtp.sendgrid.net 建立连接 [连接超时 #110]

标签 php email swiftmailer sendgrid

我正在使用 Laravel 4.2,它使用 swiftmailer 库来发送电子邮件。我正在尝试使用 Sendgrid SMTP 服务,但我的暂存服务器上出现超时错误。

在我的本地开发中一切正常。

邮件.php

return array(
    'driver' => 'smtp',
    'host' => 'smtp.sendgrid.net',
    'port' => 587,
    'encryption' => 'tls',
    'username' => 'username'
    'password' => ...

我已经切换到端口 465 和“ssl”,在本地工作但在服务器上不成功。服务器上启用了 OpenSSL。

有趣的是 Mandrill smtp(它使用不同的 laravel 驱动程序)和本地服务器 smtp 在服务器上运行良好。

端口已打开。我可以从服务器远程登录到 sendgrid。由于人们在使用 smtp.gmail.com IPv4 与 IPv6 时遇到的所有麻烦,我还切换了 IPv4 的主机名以进行检查。没有影响。

具体错误位置是这样的:

    $this->_stream = @stream_socket_client($host.':'.$this->_params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $streamContext);
    if (false === $this->_stream) {
        throw new Swift_TransportException(
            'Connection could not be established with host '.$this->_params['host'].
            ' ['.$errstr.' #'.$errno.']');

所以我的问题是我应该检查什么来弄清楚为什么 swiftmailer 和 stream_socket_client php 函数在本地工作而不是在服务器上工作。我在本地使用的是 mac,服务器运行的是 centOS。

最佳答案

看起来该应用程序是由无法访问端口 587 的用户运行的。因此,如果您遇到此问题,请再次确保您正在与运行您的应用程序的用户一起测试该端口。

关于php - Swift_TransportException·无法与主机 smtp.sendgrid.net 建立连接 [连接超时 #110],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34316481/

相关文章:

Laravel 电子邮件邮件列表即时本地化

php - fatal error : Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given

php - mysql - 按间隔查询和/或不返回任何内容

php - 数据库和文件系统,哪个更快?

android - 尝试从 Android 发送电子邮件时 Visual Studio 崩溃

email - 国际字符(例如变音符号)在电子邮件地址的本地部分是否有效?

linux - 只想为所有服务发送一封电子邮件

php - Yii2 传递参数给邮件布局

php - 从mysql获取数据库

php - 在单个查询中将结果作为单个数组获取