🍻
Laravelで送信されるすべてのメールをフックして差し込みをしたい
要件
- テスト環境から送信されるすべてのメールのタイトルの最初に [テスト]と書いておきたい
実装
Laravelなら当たり前のようにできるよな。
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Event;
use Illuminate\Mail\Events\MessageSending;
class AppServiceProvider extends ServiceProvider
{
public function boot(): void
{
// テスト環境の場合のみ適用
if (App::environment('local', 'testing')) {
Event::listen(MessageSending::class, function (MessageSending $event) {
$message = $event->message;
$originalSubject = $message->getSubject();
$message->subject("[テスト] " . $originalSubject);
});
}
}
}
Discussion