У меня есть приложение, в которое я отправляю push-уведомление, что хорошо, если пользователь вошел в приложение - однако, если он не / если он не прочитал уведомление в течение X минут, я хотел бы отправитьим электронное письмо.
Я собираюсь использовать уведомления Laravel для создания уведомлений о почте, трансляции и базе данных.По методу toMail()
я возвращаю отправку с задержкой -
public function toMail($notifiable)
{
return (new \App\Mail\Order\NewOrder($this->order))
->delay(now()->addMinutes(10));
}
По истечении нескольких минут электронное письмо отправит , но , прежде чем отправка начнется.Я хотел бы выполнить проверку, чтобы увидеть, было ли push-уведомление / уведомление базы данных уже помечено как прочитанное и отменило ли оно отправку электронной почты.Единственный способ, которым я могу думать, это привязаться к событию MessageSending
, которое запекается в Laravel -
// listen for emails being sent
'Illuminate\Mail\Events\MessageSending' => [
'App\Listeners\Notification\SendingEmail'
],
Единственная проблема заключается в том, что этот слушатель получает почтовое событие Swift, а не исходное отправляемое письмо.отправлял, так что я не знаю, как отменить это.Есть идеи и спасибо заранее?