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']);