Php 无法与主机smtp.gmail.com建立Swift_TransportExceptionConnection连接

Php 无法与主机smtp.gmail.com建立Swift_TransportExceptionConnection连接,php,yii,smtp,gmail,Php,Yii,Smtp,Gmail,正在尝试用php发送电子邮件 transport: smtp host: smtp.gmail.com username: example@example.com password: password port: 587 encryption: ssl 已尝试的选项: 尝试了端口(22、465、587)和加密(无加密、SSL、TLS)的所有组合 “允许访问不太安全的应用”处于启用状态,而“双向身份验证”处于禁用状态 已检查主机详细信息: 并尝试使用上述主机名和IP 测试了mailtrap.i

正在尝试用php发送电子邮件

transport: smtp
host: smtp.gmail.com
username: example@example.com
password: password
port: 587
encryption: ssl
已尝试的选项:

  • 尝试了端口(22、465、587)和加密(无加密、SSL、TLS)的所有组合
  • “允许访问不太安全的应用”处于启用状态,而“双向身份验证”处于禁用状态
  • 已检查主机详细信息:

    并尝试使用上述主机名和IP

  • 测试了mailtrap.io,工作正常!(在mailtrap收件箱中接收电子邮件,因此代码中没有问题)

  • 我在另一个.net应用程序中使用同一个gmail帐户,它在那里工作正常

  • 还有什么可以尝试的选项呢?

    我使用它并工作

        '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',
            ],
    

    streamBuffer.php
    中添加了这一行,它成功了

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

    streamBuffer.php
    中添加了这一行,它成功了

    $options = array_merge($options, array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));
    
    $options = array_merge($options, array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));
    
    不要禁用ssl证书验证-这将打开您的帐户。

    我很确定Gmail有正确的证书,所以你应该试着在你这边解决这个问题

  • 确保服务器上有适当的捆绑包
  • 如果您在某个工作方式类似于MITM的受信任代理之后,则应该将代理的证书添加到受信任证书中
  • 您可能需要查看或类似与您的系统相关的说明


    另外,请查看上的类似问题。

    您是否在
    localhost
    或live domain上获得上述异常?在最新版本中,您不必为
    useFileTransport
    指定
    false
    ,这是默认设置,请参阅非常有用的信息,谢谢。我正在试图弄清楚为什么电子邮件发送不使用ssl,swiftMailer可能会有一些问题,因为我的域是https,而同一封电子邮件在.net网站上运行良好。