Как бы вы слали почту в background?

Какой оптимальный вариант отсылки почты в background.


Есть форма, по форме происходит некоторое действие, результатом которого должна стать отсылка письма пользователю.

С учетом соединения с почтовым сервером — это вызывает некоторую задержку при реакции на отсылку формы, какой оптимальный способ отреагировать на изменения формы моментально, а отправку письма реализовать в паралели так сказать.


Заранее спасибо за ответы.
  • Вопрос задан
  • 3364 просмотра
Пригласить эксперта
Ответы на вопрос 7
kirchevsky
@kirchevsky Автор вопроса
Может лучше Gearman попытаться использовать? Интересуют скорее минусы подобного решения.
Ответ написан
uadeveloper
@uadeveloper
У меня на сервере крутиться почтовый демон, написаный на php, в БД пять таблиц (по важности). Когда нужно отправить письмо, ложу его в определенную таблицу в зависимости от срочности. Демон подхватывает письма, отправляет их.
Ответ написан
Комментировать
7workers
@7workers
сделать ignore_user_abort() и отослать письмо после отправки конента / разъединения клиента.
Ответ написан
@mayorovp
Отправить письмо локальному MTA на том же сервере, а тот уже сам передаст дальше.
Если отключить строгое соответствие RFC, то локальная отправка должна быть очень быстрой.
Ответ написан
ajaxtelamonid
@ajaxtelamonid
Laravel
Крон на раз в минуту, таблицы с очередями писем.
Ответ написан
@usetester
Если используется php-fpm и нет нужды в сложной логике очередей — можно использовать функцию fastcgi_finish_request(). Вызов функции принудительно отправляет ответ клиенту, а скрипт продолжает выполнение в бэкграунде.
Ответ написан
kirchevsky
@kirchevsky Автор вопроса
А вот и примерное решение моей задачи как я понимаю… ссылка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы