我正在尝试使用Symfony Mailer发送邮件(https://symfony.com/doc/current/mailer.html)。我正在将一个PDF文件附加到邮件中,使用CCD_ 1。一切正常,邮件已发送(使用mailtrap进行测试(
问题是,当我想使用Symfony Messenger使邮件异步时,附件不起作用。我得到错误
SymfonyComponentMailerMessengerSendEmailMessage 2022-01-13 12:38:51 Path "media/test.pdf" is not readable.
当我删除附件时,邮件会被发送(异步(。但当我放附件时,我得到了一个错误。所以现在,当我发送带有附件的邮件时,我必须使用同步传输,但它非常慢且阻塞。
我想知道为什么会发生这种情况,即使异步和同步邮件的代码(和路径(相同。
这是messenger.yaml
framework:
messenger:
# Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
failure_transport: failed
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
'SymfonyComponentMailerMessengerSendEmailMessage': async
在.env中,
MESSENGER_TRANSPORT_DSN=doctrine://default
我发现sync
和async
的/media/test.pdf的路径可能不一样。
所以我所做的是使用根路径
$baseUrl = getcwd();
$path = $baseUrl . '/media/test.pdf';
然后将该路径用于附件