【解説】メールヘッダの「Return-Path」と「Reply-To」の違い
2020年9月16日

phpでメール送信を伴うプログラムを作成するには、メールヘッダという情報を作成する必要があります。
メールヘッダとは、メールの宛先や差出人の名前など、メールの本文以外に関する情報が書かれている部分のことです。
そのメールヘッダの中には「Return-Path」と「Reply-To」という項目が含まれるのですが、この2つはどちらも「返信先」という日本語に訳されます。 ですが、この2つには明確な役割の差があります。今回はメールヘッダの「Return-Path」と「Reply-To」の違いについて説明します。
この記事はこんな人におすすめ!
- メールヘッダの「Return-Path」と「Reply-To」の違いがわからない人
- PHPでメール送信フォームのプログラムを作っている人
- 「Return-Path」「Reply-To」って何? という人
2つの違いは「エラー時に使われるか」or「返信時に使われるか」

結論からお話すると、「Return-Path」はメールが何らかのエラーで配達されなかった時にその旨を連絡する宛先を指定する場所であり、それに対し「Reply-To」は、メール受信者が【返信】ボタンを押した時に自動的に宛先欄に入力される宛先を指定する場所となります。
ということで同じ「返信先」と訳されますが、意味は全く異なるものです。
「Return-Path」に設定すべき内容
Return-Pathは通常、送信者のアドレスを設定することが多いです。 エラーが起こった場合、もともとの送信者に「送信できませんでした」という通知をする必要があるからです。 ただし、利用するメールサーバを管理している方がいる場合、その方のメールアドレスが指定され、メールサーバでなにかエラーが起こっていないかを監視するために使われる場合もあります。
「Reply-To」に設定すべき内容
Reply-Toにも通常、送信者のアドレスを設定することが多いです。 メールを受け取ったユーザーが、返信ボタンを押した時に自動的に相手のアドレスが入力されていたほうが便利なので、この様になっていることが多いです。
ですが、こちらもReturn-Pathと同様に、差出人ではない別のメールアドレスがきちんと理由があって指定されていることがあります。
例えば、差出人としてメーリングリストが指定されている場合、そのメールの受信者が返信ボタンをそのまま押すと、返信メールの宛先欄にはメーリングリストがそのまま入ってしまいますが、明確に「この人間に返信して欲しい」という個人のメールアドレスがある場合は、そのメールアドレスをReply-Toに指定しておくことによって、受信者は何も意識しなくても、間違いなくその担当者へメールを返信することができます。
ちなみに、Reply-Toがメールヘッダに無く省略されている場合は、差出人であるFromの部分を参照し、返信先として自動設定されます。
まとめ
ご紹介してきたように、Return-PathもReply-Toも同じ「返信先」ではありますが、全く異なる意味を持っていることがおわかりいただけたかと思います。
phpでメールを送るプログラムを作ることは、phpを学び始めた方にとっては、なかなかの障壁となる部分ではあるかと思いますが、そもそもメールとはどのような仕組みで送られているのかという根本の部分を知るのにとても良い機会だと思います。
今後もWebに関するトピックスやテクニック、知識を共有していけたらと思っています。
関連記事
【解説】メールに添付されてきた怪しいファイル「winmail.dat」って何?
私は仕事でメールクライアントとしてThunderbirdを使用していますが、先日 ...
【解決】MySQLでselectしたら日本語が文字化けしてしまった場合の対処法
先日、作成していたWebアプリケーションにおいて、phpMyAdmin上では全角 ...
【ツール紹介】Dreamweaverナシでもクリッカブルマップを作成可能!「Image Map Generator」
最近は少なくなりましたが、まだまだゾンビのように残っているのが、画像中の特定の場 ...
【コピペ可!】リセット/ノーマライズ/サニタイズ それぞれのCSSの効果の違いを解説
Webサイトを制作するときに、Google ChromeやFirefox、Saf ...