D180 メール送信処理と認証

Webアプリでは会員登録完了時やパスワードリセット時などの際にメール送信機能を用いる場合が多いです。今回はメール送信処理について紹介します。

メール送信処理について

ログイン機能の実装の際にインストールしたLaravel Breezeでは、デフォルトでメール送信処理機能がMustVerifyEmailクラスとして備わっており、数行編集をするだけで簡単に実装をすることができます。

app/Models/User.php

PHP
namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail; //MustVerifyEmailクラスを読み込む
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable implements MustVerifyEmailContract
{
    use MustVerifyEmail, HasApiTokens, HasFactory, Notifiable; //MustVerifyEmailクラスを追加
...//以下省略

上記を追加することでメールアドレスの有用性を確かめる機能を追加することができます。カスタマイズについてもコードを追加することで実現できるので興味のある方は調べてみてください。

また、実際にメールを送信させるためにはメーラーの設定を行う必要があります。お好きなメーラーを用いて構いませんが、特になければ下記を用いると設定を容易に行うことができます。登録を進めて、.envファイルの31行目付近にあるメール設定をメーラーに合わせて設定情報を記載することでメーラーと連携を行うことができます。

メーラーについてはこちらを参照ください。 メーラー設定についてはこちらを参照ください。

※メーラー設定については個々のメーラー毎に調べ、.envファイルの設定をお願いします。

エンジニアからのアドバイス

本人確認のためのメール認証を行うために、メール送信処理を用いることは一般的です。登録からメール送信、メール認証までの流れはセットで行うものと覚えておきましょう。

---