2012-05-24 1 views
4

В моем приложении мы отправляем уведомления по электронной почте в данный момент, например, в вашем реестре или когда вам нужно подтвердить некоторую информацию по электронной почте.Как синхронизировать электронные письма (в задаче) и отправлять обычные электронные письма в данный момент в других контроллерах?

Но также нам необходимо отправить персонализированные электронные письма (только в одном тексте) для сотен пользователей, но я не знаю, как объединить Symfony2 spool email без электронной почты в этом же проекте.

Есть что-то вроде параметра при отправке письма, чтобы указать это?

Что-то вроде $ email-> send ('no-spool');

+0

Вы когда-нибудь находили решение? –

+0

Я открыл проблему и был выведен на существующий: https://github.com/symfony/SwiftmailerBundle/issues/7 – unairoldan

+0

@ Ztere0 в проблеме GitHub, в которой вы перенаправляетесь (https://github.com/symfony/ SwiftmailerBundle/issues/6) stof сказал, что можно определить вторую почтовую службу. Вам удалось это сделать? –

ответ

4

Я нашел решение и отправил здесь: How to define an additional mailer service to use the spool and send instant emails in Symfony2

В двух словах:

instant_mailer: 
    class: %swiftmailer.class% 
    arguments: ["@?swiftmailer.transport.real"] 
+0

Ницца! Но вы можете столкнуться с проблемами, если одна среда использует буферизацию, а другая - нет. Возможно, вы захотите проверить, если '$ this-> get ('mailer') -> getTransport() instanceof \ Swift_Transport_SpoolTransport' перед переключением на транспорт .real, поскольку он может не существовать! – bksunday

0

PEAR :: Mail_Queue http://pear.php.net/package/Mail_Queue специально разработан для буферизации большого количества почты для отправки. поэтому я бы использовал это специально для всех ваших несрочных сообщений, а затем использовал общую функцию почты или даже Pear :: Mail для немедленных.

-2

Согласно 1.4 документации Symfony, вы можете использовать следующий вызов, чтобы отправить сообщение немедленно (если вам используют стратегию золотника для проекта в целом):

$ this-> getMailer() -> sendNextImmediately() -> send ($ message);

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

http://www.symfony-project.org/gentle-introduction/1_4/en/11-Emails

+1

То же самое не существует в sf2, и принятый ответ не так уж сложный. – bksunday

 Смежные вопросы

  • Нет связанных вопросов^_^