Я интегрировал sonataNotificationBundle, я настроил серверную часть для доктрины, электронные письма сохраняются в таблице database notification__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 в команде запуска бэкэнда.
В 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 ГДЕ t0.state =? И t0.type =? LIMIT 10 [0, "по умолчанию"] []
Нужно ли мне писать другой бэкэнд для почтовой программы и настраивать в 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