Laravel ile mail gönderimi yapıyorum ve send() fonksiyonu bitmeden içerisinde de database' e insert işlemini sağlıyorum. Gönderdiğim mail başarısız olduysa db ye kaydetmem de gerekmiyor ve bir hata mesajı almak istiyorum.
Kısaca bu şekilde bir gönderim sağlıyorum ve kayıt ediyorum.
Mail::send([], [], function ($message) use ($aRequest) {
$message->to($aRequest->to);
..
inbox::insert([
'to' => $aRequest->to,
'subject' => $aRequest->subject,
'messageId' => $message->getId(),
..
]);
});
Try catch içine ve failures() yapmayı denedim olmayan bir maile gönderim yaptım herhangi bir hata mesajı almadım. Aynı zamanda send() içinde insert işlemini yaptığım için fonksiyon tamamlanmadığı içinde çalışmadı sanıyorum. Insert işleminde 2 tane parametre kullanıyorum send ten gelen yani mecburen içinde yapmam gerekiyor. Yani kısaca mail başarısız olursa hata mesajı alıp gönderdiğim maili db ye insert etmek istemiyorum. Sizce nasıl hallede bilirim ?
if (Mail::failures()) {
return redirect()->back()->withErrors('Email Gönderilemedi!');
}