Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте, может кто-то владеет правильной схемой - практикой использования e-mail службы средсвами Laravel без лишних написанный собственного функционала по решению проблем с доставкой писем?
Не могу нагуглить что-то вразумительное.
Суть проблемы - потеря сообщений при потери соединения с интернетом, ну или каналом связи. На smtp gmail, 100% такая проблема есть.
Предположим поднял схему с таким смыслом. В форму на фронте сайта заполняем сообщение и оно улетает на сервер по маршруту падает в контроллер, где поджигается событие данной формы куда падает Request. Данное событие обрабатывает несколько слушателей, запись в файл и отправка на e-mail. Запись в файл всегда отрабатывает отлично. В принципе и e-mail отсылка отрабатывает без проблем в специальном созданном Listener под это дело, когда нет проблем у сервера с интернет соединением.
Mail::to('j@tjo.biz')->send(new FormSubmit($event));
Но стоит только отключить интернет канал, то письмо пропадает в небытие, ни логи не чего.
По идее в теории видел тему про очереди, но изучив их пришел к выводу, что они не решат проблему доставки таких писем, которые возникли при потере канала до почтового smtp сервера полностью. Объясняю их суть положить, - это ошибку в базу данных в случае неудачи и все. Далее как бы можно в теории дописать логику по обработки таблицы с неудачными очередями, но это будет выглядеть как костыль. Как бы какая-то не такая, так скажем, точно костыльная практика.
Кстати PHPMailer всем известный из композер библиотеки доставляет позже письма, которые не получилось доставить из коробки, просто прописав его массив настроек.
В Ларавел по умолчанию из коробки такое возможно?
Может у кого-то есть готовое решение под данную задачу средствами Laravel, ну или я возможно что-то не знаю?
Заранее всем спасибо за внимание.
P.S. на сайте стоит Laravel 6.x
Изменено kodzero (01.08.2020 13:36:38)
Не в сети
Никак, писать хендл в связке с очередями.
В итоге решал проблему средствами AWS SES. К сожалению многим не подходит.
Не в сети