在尝试配置内存和;Symfony 4.3应用程序中的假脱机邮件程序我按照文档创建了这个配置:
swiftmailer:
default_mailer: memory
mailers:
memory:
sender_address: 'admin@bogus.info'
transport: smtp
username: admin@bogus.info
password: 123Abcd
host: localhost
spool: { type: 'memory' }
spooler:
sender_address: 'admin@bogus.info'
transport: smtp
username: admin@bogus.info
password: 123Abcd
host: localhost
spool:
type: file
path: '%kernel.project_dir%/var/spool'
在役。yaml:
AppServicesEmailer:
$spoolMailer: '%swiftmailer.mailer.spooler%'
$defaultMailer: '%swiftmailer.default_mailer%'
$senderAddress: '%swiftmailer.mailer.memory_mailer.sender_address%'
$projectDir: '%kernel.project_dir%'
但对于服务中的这四个参数,php bin/console debug:container
:会出现以下情况
服务"App\Services\Emailer"依赖于不存在的参数"swiftmailer.mailer.spooler"…
为什么此配置不起作用?
服务"App\Services\Emailer"依赖于不存在的参数"swiftmailer.mailer.spooler"…
使用%
符号环绕参数,可以将值传递给您的服务。
当您想要注入服务时,您应该在参数前面加上@
符号。
此外,要获得默认的邮件服务,您必须注入@swiftmailer.mailer
编辑:检索发件人地址的正确方式:%swiftmailer.mailer.memory.sender_address%
更新的服务定义:
AppServicesEmailer:
$spoolMailer: '@swiftmailer.mailer.spooler'
$defaultMailer: '@swiftmailer.mailer'
$senderAddress: '%swiftmailer.mailer.memory.sender_address%'
$projectDir: '%kernel.project_dir%'