Я включил sonataNotificationBundle, я сконфигурировал backend для доктрины, электронные письма хранятся в базе данных news_message, но не отправляются.
Как отправить электронные письма из базы данных с помощью пользователя swiftmailer. Ниже приведена конфигурация
sonata_notification: backend: sonata.notification.backend.doctrine backends: doctrine: message_manager: sonata.notification.manager.message.default max_age: 86400 # max age in second pause: 500000 # delay in microseconds states: # raising errors level in_progress: 10 error: 20 open: 100 done: 10000
Запрос в журнале всегда ищет тип по умолчанию, хотя я упомянул –type = mailer в команде запуска backend
В consumer.yml, я зарегистрировал SwiftMailerConsumer в качестве слушателя событий,
<service id="sonata.notification.consumer.swift_mailer" class="Sonata\NotificationBundle\Consumer\SwiftMailerConsumer"> <tag name="sonata.notification.consumer" type="mailer" /> <tag name="sonata.notification.consumer.event_listener" event="default" method="process" /> <argument type="service" id="mailer" /> </service>
В методе MessageManagerBackend-> handle отправляется событие «по умолчанию»,
$dispatcher->dispatch($message->getType(), $event);
ниже приведен журнал
[2013-07-12 19:55:16] doctrine.DEBUG: SELECT t0.type AS type1, t0.body AS body2, t0.state AS state3, t0.restart_count AS restart_count4, t0.created_at AS created_at5, t0.updated_at AS updated_at6, t0.started_at AS start_at7, t0.completed_at AS completed_at8, t0.id AS id9 FROM notification__message t0 WHERE t0.state =? И t0.type =? LIMIT 10 [0, "default"] []
Нужно ли мне писать разные бэкэнд для почтовой программы и настраивать в config.yml вот так?
sonata_notification: backend: sonata.notification.backend.doctrine consumer: swift_mailer: path: %kernel.root_dir%/../vendor/swiftmailer backends: doctrine: message_manager: sonata.notification.manager.message.mailer
Ниже приведена рабочая конфигурация sonataNotificationBundle для потребителя swiftmailer. Не нужно вносить изменения в какие-либо другие файлы.
sonata_notification: backend: sonata.notification.backend.doctrine queues: - { queue: mailer, routing_key: mailer } - { queue: catchall, default: true } backends: doctrine: message_manager: sonata.notification.manager.message.default max_age: 86400 # max age in second pause: 500000 # delay in microseconds states: # raising errors level in_progress: 10 error: 20 open: 100 done: 10000