尝试将 Symfony 邮件程序与 Gmail 一起使用

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

尝试在我的 Symfony 5.1 应用程序上使用带有 Gmail 的 Symfony 邮件程序。

mailer.yaml:

framework:
    mailer:
        dsn: '%env(MAILER_DSN)%'

.env:

MAILER_DSN=gmail+smtp://[email protected]:mypassword@localhost

但是每次我发送邮件时,我都会收到:

Connection could not be established with host "ssl://smtp.gmail.com:465": stream_socket_client():
SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

不明白为什么......根据https://symfony.com/doc/current/mailer.html它应该可以工作。

我在 Gmail 帐户上激活了低安全性应用程序。

感谢您的帮助

symfony
5个回答
7
投票

要使用 Gmail,您需要安装包

symfony/google-mailer
(
composer require symfony/google-mailer
)

您的 .env 文件中的此配置:

###> symfony/google-mailer ###
# Gmail SHOULD NOT be used on production, use it in development only.
MAILER_DSN=gmail://YourEmailAddress:YourPassword@default?verify_peer=0
###< symfony/google-mailer ###

一个例子:

MAILER_DSN=gmail://[email protected]:admin123@default?verify_peer=0

警告

虽然不建议禁用此验证 出于安全原因,它在开发应用程序或 使用自签名证书时


4
投票

我知道您说过您已经做到了,但我通常会收到此错误,因为我需要在我的 Gmail 帐户上允许“安全性较低的应用程序”。

  1. 连接到 Gmail
  2. 转至 https://www.google.com/settings/security/lesssecureapps 并单击授权
  3. 转至 https://accounts.google.com/DisplayUnlockCaptcha 并点击继续
  4. 重试从您的网站发送电子邮件,如果仍然不起作用重复第 2 点和第 3 点。有时我必须尝试几次...

1
投票

这可以来自 config/packages/messenger.yaml 定义的异步属性 请参阅https://github.com/symfony/symfony/issues/45811


0
投票

通过 Gmail 发送电子邮件时,您需要确保使用 SSL 证书。

参见:

https://symfony.com/doc/3.0//email/gmail.html


0
投票

使用邮件程序,您可以做到这一点:

MAILER_DSN=smtp://USER:[email protected]:465?encryption=ssl&auth_mode=login

问候

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