Laravelでメール送信をしていると、こんな経験ありませんか?
- From が no-reply@gmail.com
- 受信者が「返信」ボタンを押す
- どこに送られたのか分からない…
特に問い合わせ通知や業務連絡メールだと、この状態は地味に不親切です。
この記事では、メールヘッダの Reply-To を設定して、返信先を明示的に指定する方法を紹介します。
👍 よくある状況
Laravelのデフォルト実装だと、こういうコードを書きがちです。
Mail::to($user->email)->send(new SampleMail());
そして SampleMail 側:
public function build()
{
return $this->from('no-reply@gmail.com')
->subject('お知らせ')
->view('emails.sample');
}
この場合、メールソフトで「返信」を押すと…
👉 From に設定された no-reply@gmail.com に返信される
でも実際は、
- CS担当に送りたい
- サポート用アドレスに送りたい
- チャンネル(Slack連携用アドレス等)に送りたい
…というケースが多いはずです。
✅ 解決策:Reply-To を設定する
メールには From とは別に Reply-To(返信先) を指定できます。
Laravelではとてもシンプルに設定できます。
🔧 Mailableでの Reply-To 設定方法
最も簡単な例
public function build()
{
return $this->from('no-reply@gmail.com')
->replyTo('support@example.com')
->subject('お問い合わせありがとうございます')
->view('emails.sample');
}
これだけで、
- 表示上の送信元:no-reply@gmail.com
- 返信ボタンを押したとき:support@example.com
になります🎉
🏷 名前付きで Reply-To を設定したい場合
返信先に表示名を付けたい場合は、配列で指定できます。
->replyTo('support@example.com', 'サポート窓口')
または複数指定も可能:
->replyTo([
['address' => 'support@example.com', 'name' => 'サポート窓口']
])
🛠 config/mail.php と環境変数で管理する方法
同じ Reply-To を毎回使うなら env 管理が便利。
.env
MAIL_REPLY_TO_ADDRESS=support@example.com
MAIL_REPLY_TO_NAME=サポート窓口
Mailable
// config/mail.php
->replyTo(
config('mail.reply_to.address'),
config('mail.reply_to.name')
)
📝 まとめ
-
Laravelのメールでは返信先が分かりにくい問題がよく起きる
-
replyTo() を使うだけで簡単に改善
-
From と Reply-To の役割は別物
-
問い合わせ系メールでは設定必須レベル
-
「no-reply は no-reply。でも返信は受け取りたい」場合に最適