Буферизация почты и отправка почты напрямую

Мне нужно 2 вида почты:

  1. Буферная почта (для массовых рассылок)
  2. Прямая почтовая рассылка (например, заказная почта)

Теперь у меня есть 2 услуги:

<service id="spool_mailer" class="%swiftmailer.class%">
    <argument type="service" id="swiftmailer.transport"/>
</service>

<service id="mailer" class="%swiftmailer.class%">
    <argument type="service" id="swiftmailer.transport.real"/>
</service>

Но «swiftmailer.transport.real» будет игнорировать «swiftmailer.delivery_address», и в среде разработки это требуется. Я пробовал другие транспорты, но они будут буферизовать почту: Настроить SwiftMailer

Как это исправить?


person Mitchel Verschoof    schedule 30.10.2012    source источник
comment
работает для меня .. вы уверены, что тестируете это правильно?   -  person Ramon de la Fuente    schedule 30.10.2012
comment
Я исправлен: в вашей настройке, если вы загружаете только почтовый сервис, delivery_address не будет использоваться. Если вы загрузите службу spool_mailer (но по-прежнему будете использовать службу mailer для отправки сообщения), будет использоваться адрес delivery_address будет.   -  person Ramon de la Fuente    schedule 30.10.2012


Ответы (1)


Я думаю, что ваше решение, хотя и умное, является хакерским и основано на обходе некоторых внутренних функций Swiftmailer. Обход части кода, которая отправляет электронное письмо в спул, похоже, также обходит часть кода, которая устанавливает адрес доставки. Я бы не стал этого делать, не прочитав исходный код, чтобы понять, чего еще не происходит.

Я думаю, что поддерживаемый подход заключается в использовании нескольких почтовых программ, как описано здесь: http://symfony.com/doc/current/reference/configuration/swiftmailer.html#using-multiple-mailers

Это позволит вам определить две разные почтовые программы, одну из которых можно настроить для использования спула. (Вы также можете иметь две почтовые программы, каждая из которых имеет свою отдельную катушку)

person Omn    schedule 18.03.2015