无法使用host smtp.gmail.com建立Swift_TransportExceptionConnection

时间:2018-04-25 18:20:52

标签: php yii smtp gmail

尝试在php中发送电子邮件。

Nothing

已尝试过选项:

  1. 尝试了端口(22,465,587)和加密(无加密,SSL,TLS)的所有组合
  2. 允许访问不太安全的应用程序,以及关闭身份验证的两种方式。
  3. 检查了主机详细信息: enter image description here

    并尝试使用上述主机名和ips。

  4. 经过测试的mailtrap.io及其工作正常! (在mailtrap收件箱中接收电子邮件,因此代码中没有问题

  5. 我在另一个.net应用程序中使用相同的Gmail帐户,并在那里正常工作。

  6. 还有什么可以选择尝试?

3 个答案:

答案 0 :(得分:0)

我用这个并且工作

    'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        'viewPath' => '@common/mail',
        'useFileTransport' => false,//set this property to false to send mails to real email addresses
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            'host' => 'smtp.gmail.com',
            'username' => 'your_name@gmail.com', // a valid gmail account
            'password' => 'your_password', // the related  passwordd
            'port' => '587',
            'encryption' => 'tls',
        ],

答案 1 :(得分:0)

streamBuffer.php中添加了这一行并且它有效!

$options = array_merge($options, array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));

答案 2 :(得分:0)

  

streamBuffer.php中添加了这一行并且它有效!

$options = array_merge($options, array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));

禁用ssl证书验证 - 这会打开MITM attacks

我非常确定Gmail有正确的证书,因此您应该尝试在最后修复此问题。

  1. 确保您的服务器上有正确的Certificate authority捆绑包。
  2. 如果你背后有一个像MITM一样工作的可信代理,你应该将代理证书添加到你的可信证书中。
  3. 您可能需要查看How to update cURL CA bundle on RedHat?How do you add a certificate authority (CA) to Ubuntu?或与您的系统相关的类似说明。

    另外,请查看Composer bug tracker处的类似问题。