はじめに
Google(Gmail)の新しい「メール送信者のガイドライン」が話題ですが、その中で、RFC5322 が出ていて、以前気になった Fromフィールド(Fromヘッダ)についてです。
RFC 5322でのFromフィールドの定義
RFC 5322 の 3.6 で、以下のように単一インスタンスのヘッダーと定義されています。
+----------------+--------+------------+----------------------------+
| Field | Min | Max number | Notes |
| | number | | |
+----------------+--------+------------+----------------------------+
...
| from | 1 | 1 | See sender and 3.6.2 |
| sender | 0* | 1 | MUST occur with |
| | | | multi-address from - see |
| | | | 3.6.2 |
...
また、3.6.2. Originator Fields で、以下のように mailbox-list となっています。
from = "From:" mailbox-list CRLF
mailbox-list ?!
ん? mailbox-list です。
つまり、以下はRFC 5322としては以下のはずです。
From: <user1@example.com>
From: <user2@example.com>
From: <user1@example.com>, <user2@example.com>
実際に送信してみた。
sendmail の自分のサーバ
[user@mail ~]$ telnet localhost 25
(略)
DATA
354 Enter mail, end with "." on a line by itself
Date: Mon, 11 Dec 2023 23:00:00 +0900
From: <user1@example.com>, <user2@example.com>
Subject: test
To: <user@example.jp>
Message-ID: <20231211230000_0000@example.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
test
.
250 2.0.0 0XX0X0XX0000 Message accepted for delivery
QUIT
221 2.0.0 example.jp closing connection
Connection closed by foreign host.
[user@mail ~]$
(実際は、実在のドメインを使用しています。)
送信出来た。
Gmail のサーバ
[user@mail ~]$ telnet gmail-smtp-in.l.google.com. 25
(略)
DATA
354 Go ahead d8-20020a17090ab30800b0028a2b0c5d7asi5580693pjr.41 - gsmtp
Date: Mon, 11 Dec 2023 23:00:00 +0900
From: <user1@example.com>, <user2@example.com>
Sender: <user2@example.com>
Subject: test
To: <(user)@gmail.com>
Message-ID: <20231211230000_0000@example.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
test
.
550-5.7.1 [XX.XX.XX.XX] Messages with multiple addresses in From: header are
550-5.7.1 not accepted. For more information, go to
550-5.7.1 https://support.google.com/mail/?p=RfcMessageNonCompliant and review
550 5.7.1 RFC 5322 specifications. d8-20020a17090ab30800b0028a2b0c5d7asi5580693pjr.41 - gsmtp
Connection closed by foreign host.
[user@mail ~]$
(実際は、実在のドメインを使用しています。)
送信できず
エラーメッセージでは、複数アドレスの Fromヘッダは accept しないとのこと。
見直し
あちこち見直してみたら、Gmailの「メール送信者のガイドライン」に以下のように明記されていた。
メールの From: ヘッダーには、次の例に示すようにメールアドレスを 1 つのみ含めるようにします。
From: notifications@solarmora.com
「Gmail では、Fromヘッダ に複数メールアドレスは許容されていないとのこと。」
考察
そもそもは、Senderヘッダを調べていて、Fromヘッダの複数メールアドレスにたどり着いた。
Fromヘッダが複数メールアドレスの場合、DKIMやDMARCはどのように処理されるだろうかと Gmailも試してみたが、そもそも許容されていなかった。
From: 投稿者 <投稿者メールアドレス>, ML名 <MLメールアドレス>
From: 送信者 <送信者メールアドレス>, 転送者 <転送者メールアドレス>
もし、多くのメール受信サーバが、上記のようなFromヘッダの複数メールアドレスを許容してくれれば、メーリングリストや転送時などの Fromヘッダの問題やドメイン認証等がうまく処理できるかもしれないと考えたが、結局 Fromヘッダが変更・Senderヘッダが追加のため、DKIMは壊れると想定されるので、あまり解決になってなさそうである。
おわりに
「Fromヘッダ に複数メールアドレス可能」は、現在のDKIM,DMARC等と相性が悪そうなのと、ほとんど使われてなさそうなので、今後のRFCでなくなるかと推測される気がします。