Help us understand the problem. What is going on with this article?

【Laravel】メール送信失敗時のログを残す

More than 1 year has passed since last update.

Laravel で複数のメールアドレスへの送信処理を書いた時、メール送信が失敗したアドレスの一覧を取得したかったが、ドキュメントには載っていなかったのでメモとして残しておく。

環境

Laravel 6.X

やり方

Mail::failures() で送信失敗メールアドレスが配列で取得できる。(参考
例えば、Mailable クラスの設定後、送信処理をコントローラに書く場合、下記のような感じ。

MailSendController.php
namespace App\Http\Controllers;

use App\Mail\SampleMailableClass;
use Illuminate\Support\Facades\Mail;
use Illuminate\Http\Request;
use Log;

class MailSendController extends Controller
{
    public function send()
    {
        $emails = ['hoge@example.com', 'huga@example.com']
        Mail::to($emails)->send(new SampleMailableClass());
        if (count(Mail::failures()) > 0) {
            Log::channel('slack')->warning(Mail::failures());
        };
    }
}

Slack へのログ投稿の方法は こちらの記事 に詳しく書かれていました。

参考

avocadoneko
Laravel / Vue.js
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away