0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「このメール、返信どこに行った?」をLaravelで防ぐ方法

Posted at

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

これだけで、

🏷 名前付きで 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。でも返信は受け取りたい」場合に最適

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?