Swiftmailer 中不存在的参数
Nonexistent parameter in Swiftmailer
为了在 Symfony 4.3 应用程序中同时配置内存和假脱机邮件程序,我按照 docs 创建了这个配置:
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'
在services.yaml中:
App\Services\Emailer:
$spoolMailer: '%swiftmailer.mailer.spooler%'
$defaultMailer: '%swiftmailer.default_mailer%'
$senderAddress: '%swiftmailer.mailer.memory_mailer.sender_address%'
$projectDir: '%kernel.project_dir%'
但是对于服务中的这四个参数,php bin/console debug:container
会发生以下情况:
The service "App\Services\Emailer" has a dependency on a non-existent
parameter "swiftmailer.mailer.spooler"...
为什么这个配置不起作用?
The service "App\Services\Emailer" has a dependency on a non-existent parameter "swiftmailer.mailer.spooler"...
带有 %
符号的周围参数允许您将 值 传递给您的服务。
因为你想注入一个服务,你应该在你的参数前加上@
符号。
此外,要获得默认的邮件服务,您必须注入 @swiftmailer.mailer
编辑: 检索发件人地址的正确方法:%swiftmailer.mailer.memory.sender_address%
更新服务定义:
App\Services\Emailer:
$spoolMailer: '@swiftmailer.mailer.spooler'
$defaultMailer: '@swiftmailer.mailer'
$senderAddress: '%swiftmailer.mailer.memory.sender_address%'
$projectDir: '%kernel.project_dir%'
为了在 Symfony 4.3 应用程序中同时配置内存和假脱机邮件程序,我按照 docs 创建了这个配置:
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'
在services.yaml中:
App\Services\Emailer:
$spoolMailer: '%swiftmailer.mailer.spooler%'
$defaultMailer: '%swiftmailer.default_mailer%'
$senderAddress: '%swiftmailer.mailer.memory_mailer.sender_address%'
$projectDir: '%kernel.project_dir%'
但是对于服务中的这四个参数,php bin/console debug:container
会发生以下情况:
The service "App\Services\Emailer" has a dependency on a non-existent parameter "swiftmailer.mailer.spooler"...
为什么这个配置不起作用?
The service "App\Services\Emailer" has a dependency on a non-existent parameter "swiftmailer.mailer.spooler"...
带有 %
符号的周围参数允许您将 值 传递给您的服务。
因为你想注入一个服务,你应该在你的参数前加上@
符号。
此外,要获得默认的邮件服务,您必须注入 @swiftmailer.mailer
编辑: 检索发件人地址的正确方法:%swiftmailer.mailer.memory.sender_address%
更新服务定义:
App\Services\Emailer:
$spoolMailer: '@swiftmailer.mailer.spooler'
$defaultMailer: '@swiftmailer.mailer'
$senderAddress: '%swiftmailer.mailer.memory.sender_address%'
$projectDir: '%kernel.project_dir%'