为什么我不能用 SwiftMailer 发送 Gmail 邮件?

Why I cant send a Gmail email with SwiftMailer?

当我尝试在我的 Symfony 项目中使用 swiftmailer 发送电子邮件时,我得到了这个异常:

Exception occurred while flushing email queue: Connection could not be established with host smtp.gmail.com [ #0]

这是我的 config.yml:

swiftmailer:
    transport: '%mailer_transport%'
    encryption: '%mailer_encryption%'
    port: '%mailer_port%'
    auth_mode:  '%mailer_auth_mode%'
    host: '%mailer_host%'
    username: '%mailer_user%'
    password: '%mailer_password%'
    spool: { type: memory }

和我的 parameters.yml:

parameters:
    database_host: 127.0.0.1
    database_port: null
    database_name: pidev
    database_user: root
    database_password: null
    mailer_transport: smtp
    mailer_encryption: ssl
    mailer_auth_mode: login
    mailer_port: 465
    mailer_host: smtp.gmail.com
    mailer_user: 'myGmailAddress'
    mailer_password: 'mypassword'
    secret: ThisTokenIsNotSoSecretChangeIt

我允许在我的 Gmail 帐户上使用安全性较低的应用程序,并禁用了我的防病毒软件和防火墙。 另外,我已经尝试 ping smtp.gmail.com,它工作正常,但我遇到了同样的问题。

使用 gmail 发送电子邮件非常简单。配置以下键:

swiftmailer:
    transport: gmail
    username:  %mailer_user%
    password:  %mailer_password%

大功告成!

文档:https://symfony.com/doc/3.3/email/gmail.html

问题已解决,我只需添加以下两行代码即可:

$options['ssl']['verify_peer'] = FALSE;
$options['ssl']['verify_peer_name'] = FALSE;

vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php

就在第 263 行之后,所以它看起来像这样:

$options = array_merge($options, $this->_params['stream_context_options']);
$options['ssl']['verify_peer'] = FALSE;
$options['ssl']['verify_peer_name'] = FALSE;

现在一切正常!