为什么我无法使用 SwiftMailer 发送 Gmail 电子邮件?

问题描述 投票:0回答:2

当我尝试在 Symfony 项目中使用

swiftmailer
发送电子邮件时,出现此异常:

刷新电子邮件队列时发生异常:无法连接 与主机 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 }

和我的参数.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,它工作正常,但我遇到了同样的问题。

php symfony smtp gmail swiftmailer
2个回答
0
投票

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

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

你就完成了!

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


-2
投票

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

$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;

现在一切正常!

© www.soinside.com 2019 - 2024. All rights reserved.