问题描述
我使用Symfony 5 messanger处理以异步方式发送的电子邮件。我有:
-
在 .env 中配置的
-
电子邮件DNS
MAILER_DSN=smtp://localhost
.env 中的 -
messanger传输DNS(我使用数据库存储电子邮件队列)
MESSENGER_TRANSPORT_DSN=doctrine://default
-
在 messenger.yaml
中的运输和路由serializer: default_serializer: messenger.transport.symfony_serializer transports: # https://symfony.com/doc/current/messenger.html#transport-configuration async: '%env(MESSENGER_TRANSPORT_DSN)%' failed: 'doctrine://default?queue_name=failed' # sync: 'sync://' routing: # Route your messages to the transports # 'App\Message\YourMessage': async 'Symfony\Component\Mailer\Messenger\SendEmailMessage': async
当前情况::将电子邮件发送到队列的工作原理-使用邮件发送器导致在数据库表 messanger_messages 中插入记录。
问题::如果我正确理解文档,则为了进行异步电子邮件处理,首先将电子邮件排入数据库(对于我而言),然后使用命令php bin/console messenger:consume -vv async
逐一发送。不幸地执行此命令不会导致发送电子邮件。数据库中的记录保持不变,它们不属于失败类别,并且不生成电子邮件。
为确保发送配置正确,我切换到同步方法,在这种情况下,将立即生成并发送电子邮件。所以我的问题是,还需要执行另一步骤来使排队的电子邮件被使用,例如。编写自定义发送处理程序(我假设messanger:consume
命令将为我完成此操作),或者如果我错过了该过程的任何其他部分,导致没有使用排队的电子邮件。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)