A Laravel(Mail) - user000422/0 GitHub Wiki

開発準備

公式(Laravel 10): https://readouble.com/laravel/10.x/ja/mail.html Mailtrap SMTPテストサーバを提供するサービス。 公式: https://mailtrap.io/ja/

■コードサンプル EmailTesting → InBoxes → Integration → SMTP Curl PHPプルダウンをLaravelに変更。 コードサンプルを閲覧可能。

準備

.env

# SMTPの設定
MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=***
MAIL_PASSWORD=***

■Mailableクラスの作成

php artisan make:mail TestMail

■Mailableクラスの編集

use Illuminate\Mail\Mailables\Address;

// データの連携が必要な場合は引数でデータを受け取る
public function __construct($name)
{
    $this->name= $name;
}

public function envelope(): Envelope
{
    return new Envelope(
        // from
        from: new Address('[email protected]', '送信者'),
        // subject(件名)
        subject: 'Sample Mail',
    );
}

// ビューの設定
public function content(): Content
{
    return new Content(
        // 本文のビュー
        view: 'emails.sample',
        // メール本文にデータを埋め込む場合
        with: ['name' => $this->name,],
    );
}

■メール本文 viewで定義する。 公式推奨ディレクトリ名 : resources/views/emails

■コントローラー設定

use Illuminate\Support\Facades\Mail;
use App\Mail\TestMail;
public function send()
{
    Mail::to('[email protected]')->send(new TestMail());
    return redirect('sample'); // 送信後ページ
}

■ルーティング

Route::get('/mail/send', [SampleController::class, 'send']);