внедрить почтовый сервер, не зависящий от почтовой очереди, с помощью php и swift-mailer - PullRequest
0 голосов
/ 29 февраля 2012

Мое веб-приложение выполняется с помощью php на сервере Linux, мы используем библиотеку swift-mailer для доставки электронной почты из веб-приложения на наш собственный почтовый сервер.

Дело в том, что мне нужно отслеживать каждое электронное письмо (отправленное или не отправленное), которое обрабатывает веб-сервер, поэтому в случае отказа почтового сервера мы можем повторно отправлять электронные письма, которые не были отправлены, когда почта сервер снова работает Наша бизнес-модель основана на отправке электронных писем клиентам.

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

Я полагаю, что это может быть сделано, проверяя параметр $failures в SwiftMailer::send(), если электронное письмо не было отправлено, и сохраняя его в таблице базы данных (mail_failures) или в файле внутри каталога (mail / failures /) .

Мое предложение:

  1. вставить любое письмо в очередь отправки
  2. удалить почту из очереди при отправке или изменить ее статус на неудачную, если не отправлена ​​
  3. использовать cronjob для вызова php-скрипта, который обрабатывает отправку почты из очереди
  4. отчет о том, что в очереди есть электронное письмо со статусом ошибки *

Я бы использовал таблицы базы данных, а не системные файлы

Это правильный способ сделать это? Какие-нибудь идеи или способы улучшить это? Любое программное обеспечение, которое обрабатывает это автоматически?

Может ли это быть обработано через ZeroMQ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...