1

我在 Symfony 应用程序上生成邮件时遇到了一些问题:

当我使用 Gmail 发送电子邮件时,我使用 docker:

MAILER_URL=gmail://MyAddress@gmail.com:MyPw@localhost

一切正常

但是一旦我尝试拦截这些邮件:

=======================

像这样的邮件陷阱

MAILER_DSN=smtp://b3f077aeceaeb6:8792a1811dd8ef@smtp.mailtrap.io:2525?encryption=tls&auth_mode=login
MAILER_URL=smtp://smtp.mailtrap.io:25&auth_mode=login&username=b3f077aeceaeb6&password=8792a1811dd8ef

或者像这样的mailHog

MAILER_DSN=smtp://localhost:1025
MAILER_URL="smtp://mailhog:1025?encryption=ssl&auth_mode=login&username=null&password=null"

我的 docker-compose.yml 看起来像这样:

mailhog:
    container_name: mailhog
    restart: always
    image: mailhog/mailhog:latest

    ports:
        -'8025:8025'
        -'1025:1025'

有谁知道如何查看 mailhog 中显示的邮件?mailhog 页面已正确加载,但其中没有显示任何内容。发送邮件的功能进入了,所以我认为这一定是配置问题

4

2 回答 2

2

根据您的帖子,我对 Symfony 的 mailhog 和 SwiftMailer 有类似的问题。

我最终都使用了 smtp,MAILER_DSN如下MAILER_URL所示

MAILER_DSN=smtp://localhost:1025
MAILER_URL="smtp://localhost:1025?auth_mode=login"

如您所见,诀窍是删除encryption=ssl,因为 mailhog 不支持它,并且username=null&password=null软件将其作为文字字符串发送"null"

此外,在我swiftmailer.yamlmailer.yaml我有这个非常简单的配置

# swiftmailer.yaml
swiftmailer:
    url: '%env(MAILER_URL)%'
    spool: { type: 'memory' }

# mailer.yaml
framework:
    mailer:
        dsn: '%env(MAILER_DSN)%'
于 2021-05-04T13:32:37.717 回答
-2

你需要缩小问题的范围。

telnet1. 您可以通过或openssl(如果是 STARTTLS)给您发送电子邮件吗?

通过远程登录:https ://mediatemple.net/community/products/dv/204404584/sending-or-viewing-emails-using-telnet

通过 OpenSSL:https ://www.stevenrombauts.be/2018/12/test-smtp-with-telnet-or-openssl/

阅读本教程(或任何有关此主题的教程)并确保您的 MAILER_URL 正确(包括凭据、端口等)。上次我遇到电子邮件问题时,原来是防火墙阻止了我。

不要急于排除网络问题。

2. 一旦您确认可以通过 Telnet/OpenSSL 发送电子邮件:

您需要升级并尝试在 Symfony 中配置 URL 并尝试通过swiftmailer:send命令发送。这可能会揭示 Symfony 中的一些奇怪的配置问题,您可以相应地修复它们

3. 从 Docker 容器重复 (1) 和 (2)。

只需exec进入 Docker 并重新开始。这可能会揭示 Docker 网络配置中的一些问题,您可以修复这些问题。

请用更多发现更新您的问题,我们可能会进一步帮助您...

于 2021-03-11T13:36:10.867 回答