メールの差出人・宛先周りの用語の概観
送信者側
この辺の4つの用語は同じものを指している
reverse-path
MAIL FROM:
Envelope-From
Return-Path:
実体としては、「bounceの返答先となる送信元アドレス」を指している
時系列で並べるとこうなる
code:_
RFC仕様での定義名 ──────→ reverse-path (RFC 5321 の用語)
↓
SMTP通信で運ぶときのコマンド → MAIL FROM:<addr> (通称 envelope from)
↓
受信側MTAが配送完了時に転記 → Return-Path: <addr> (message header に書き込む)
Return-Path: のポジションが紛らわしい理由
MAIL FROM は通信(封筒)の世界の話で、メール本文には残らない
一方 Return-Path は From: や Subject: と並ぶ message header の一員として、受信メールのソースに残る
code:_
Return-Path: <bounce@example.com> ← header だが、値の出どころは envelope
Received: from ...
From: "Sales" <sales@example.com> ← こちらは送信者が書いた表示用 header
Subject: ...
つまり Return-Path は 「出自は envelope(MAIL FROMの値)、居場所は header」 というハイブリッドな存在。
しかも From:/Subject: を書くのは送信者だが、Return-Path を書くのは受信側の最終配送MTA
受信者側も完全に対応している
table:_
工程 送信者側(from系) 受信者側(to系)
仕様書上の正式名 reverse-path forward-path
SMTPコマンド MAIL FROM: RCPT TO:
通称 Envelope-From envelope-to / recipient
配送後のヘッダ Return-Path: Delivered-To: / Envelope-To
(別物の表示用ヘッダ) From: To: / Cc:
❌️MAIL TO:は存在しない
受信者側で名前が2つ(Delivered-To / Envelope-To)あるのは実装差で、Postfix・Gmail系は Delivered-To、Eximは Envelope-To を使う、という方言にすぎない
中身はどちらも「RCPT TO の値を header に転記したもの」= Return-Path の宛先版。
送信者側との唯一の構造差は、MAIL FROM は1通に1回だけなのに対し、RCPT TO は宛先の数だけ繰り返せること:
code:_
MAIL FROM:<sender@example.com> ← 1回だけ
RCPT TO:<alice@example.org> ← 複数OK
RCPT TO:<bob@example.org>