Поддерживает ли SwiftMailer асинхронную отправку почты, как это делает Mail_Queue?

#swiftmailer #mail-queue

#swiftmailer #очередь почты

Вопрос:

Я хочу отправлять свои электронные письма, используя SMTP-серверы sendgrid, но подключаясь к ним не в «веб-режиме», а через (простую) очередь.

Я знаю, что Mail_Queue от PEAR может позволить мне это сделать, но могу ли я сделать это с помощью SwiftMailer?

(В чем именно функциональные различия между SwiftMailer и Mail_Queue?)

Спасибо!

Ответ №1:

У SwiftMailer есть опции для «спула». Подробности есть в кулинарной книге Symfony. Существуют также пакеты Symfony, которые расширяют эту систему для загрузки через базу данных, такие как WhiteOctoberSwiftMailerDBBundle.

Из кулинарной книги:

 # app/config/config.yml
swiftmailer:
    # ...
    spool:
        type: file
        path: /path/to/spool
  

Теперь, когда ваше приложение отправляет электронное письмо, оно фактически не будет отправлено, а вместо этого добавлено в спул. Отправка сообщений из спула выполняется отдельно. Для отправки сообщений в спуле есть консольная команда:

 php app/console swiftmailer:spool:send --env=prod