Документация Laravel описывает способность запланировать почту для последующей доставки, со следующим примером:
$when = Carbon::now()->addMinutes(10);
Mail::to($request->user())
->cc($moreUsers)
->bcc($evenMoreUsers)
->later($when, new OrderShipped($order));
Никаких дополнительных настроек упоминается в документации (нет таблиц базы данных или что-то вроде того, что требуется для этой функции). Но мне интересно, как это работает? Где Laravel хранит информацию для последующего поиска.
Надежна ли эта функция в течение более длительного времени? Я хочу отправить письмо пользователю через 3 дня после регистрации. Может ли быть вероятность того, что почта будет потеряна? Например при перезапуске сервера?
Из того же документа вы связали
Этот метод автоматически позаботится о переносе работы на
очередь, поэтому сообщение отправляется в фоновом режиме. Конечно ты будешь
необходимо настроить ваши очереди перед использованием этой функции.
Laravel использует очереди, чтобы позаботиться об этом. Вам необходимо включить очередь в отправляемом почтовом сообщении. Почта с задержкой отправки также использует те же очереди. Чтобы использовать эту функцию, вы должны иметь настройку очереди и прослушиватель очереди или работника, работающего для обработки очередей. Проверьте doc очередей для получения дополнительной информации об этом.
Других решений пока нет …