У меня есть проект Symfony 2.8, который требует использования двух отдельных почтовых сервисов (например, SMTP Google и SMTP Yahoo). Я устанавливал их в соответствии с Документами:Как мне добавить различные почтовые программы SwiftMailer в различные сервисы Symfony?
swiftmailer:
default_mailer: mailer_google
mailers:
mailer_google:
transport: smtp
host: %mailer_google_host%
port: %mailer_google_port%
encryption: tls
username: %mailer_google_username%
password: %mailer_google_password%
mailer_yahoo:
transport: smtp
host: %mailer_yahoo_host%
port: %mailer_yahoo_port%
encryption: tls
username: %mailer_yahoo_username%
password: %mailer_yahoo_password%
Значения %variables%
все определены в parameters.yml
, которые не имеют отношения здесь.
Я пытаюсь использовать пользовательский класс Mailer, который используется для определения двух различных услуг, например:
aalaap.services.mailer_google:
class: Aalaap\AppBundle\Services\Mail\Mailer
arguments:
- @mailer
- '%mailer_google_sender%'
aalaap.services.mailer_yahoo:
class: Aalaap\AppBundle\Services\Mail\Mailer
arguments:
- @mailer_yahoo
- '%mailer_yahoo_sender%'
Теперь, потому что почтовая программа по умолчанию устанавливается в mailer_google
, в первом определении сервиса , только указав @mailer
работает отлично. Однако вторая услуга не может найти @mailer_yahoo
.
ServiceNotFoundException в CheckExceptionOnInvalidReferenceBehaviorPass.php линии 58: Услуга "aalaap.services.mailer_yahoo" имеет зависимость от несуществующей службы "mailer_yahoo".
Я пробовал его с @mailer.mailer_yahoo
, но это тоже не работает. Если я изменил первое определение службы, чтобы использовать конкретный @mailer_google
, а не только по умолчанию @mailer
, это тоже не сработает. Не повезло с @swiftmailer.mailers.mailer_yahoo
.
Как мне вставить вторую (или нестандартную) почтовую службу в службу?
Я думаю, что основным сервисом является 'swiftmailer'. Попробуйте запустить эту команду в консоли и проверьте, какие параметры сервиса у вас есть в контейнере. 'php bin/console debug: swiftmailer' – Jeet
Вы пробовали @ swiftmailer.mailer.mailer_yahoo (не @ swiftmailer.mailers.mailer_yahoo)? –
@UgoT. Я * просто * понял это сразу после публикации вопроса! Я почти всегда выясняю ответ сам после публикации вопросов на этом сайте. В любом случае - если вы опубликуете это как ответ, я приму это! – aalaap