【发布时间】:2019-10-21 08:58:27
【问题描述】:
我将几封邮件放入队列中。当我运行工作人员时,它会成功处理所有邮件,但不会发送。当我添加一个触发异常的邮件时,工作人员被杀死,所有邮件都在发送。
当我与工人处理邮件后运行bin/console swiftmailer:spool:send时,它会显示:
0 emails sent
也试过forceSend(),还是不行。
工人:
class SendQueuedMailWorker
{
/**
* @var Mailer
*/
private $mailer;
public function __construct(
Mailer $mailer
) {
$this->mailer = $mailer;
}
public function handle(SendQueuedMailCommand $command): void
{
$user = $command->getUser();
$mailContext = [
'user' => $user
];
$message = $this->mailer->compose(
'mail_template',
$mailContext,
null,
$user->getEmail()
);
if ($this->mailer->send($message) === false) {
throw QueuedMailNotSentException::withId($command->getReference());
}
}
}
Swiftmailer:
swiftmailer:
transport: '%mailer_transport%'
encryption: '%mailer_encryption%'
host: '%mailer_host%'
port: '%mailer_port%'
username: '%mailer_user%'
password: '%mailer_password%'
delivery_addresses: '%mailer_delivery_addresses%'
spool: { type: 'memory' }
disable_delivery: '%mailer_disable_delivery%'
队列被消费时没有抛出错误信息。
控制台输出:
Consuming from mailsend queue
[1] Processing payload {"reference":2016320254, "user":"John"}
[1] processed with result: true
[2] Processing payload {"reference":2019990645, "user":"Doe"}
[2] processed with result: true
如何让邮件立即发送?
【问题讨论】:
标签: symfony queue swiftmailer symfony-3.4