配布リストを使用すると、検出されたヘッダー構文エラーが原因で、さまざまなLinuxベースのシステムで電子メールが拒否されました。

配布リストを使用すると、検出されたヘッダー構文エラーが原因で、さまざまなLinuxベースのシステムで電子メールが拒否されました。

私が逃したものは何ですか...

指定内容:Webメールコンポーネントを含むLinuxスタックベースの電子メールサーバーシステム(ホスティング)。様々な種類電子メールクライアントと他のウェブメールシステムが含まれてテストされました。

私たちは、配布リストを介して電子メールを配布するためにWebメールクライアントを使用します。メールシステムは、次の例のような電子メールを送信します(ソース電子メールヘッダーからコピーされます)。organisation配布リストの名前はどこにありますか?

Date: Sat, 20 Apr 2024 18:35:45 +0200
Message-ID: <[email protected]>
From: [email protected]
To: organisation: [email protected], [email protected];
Subject: here goes the subject

これまでは、電子メールが正常に送信されており(GMXメールボックスでも)、「送信できない電子メール」というメッセージは表示されません。

質問

次に、一部の電子メールクライアントまたはWebメールシステム(GMXウェブメールなど)が「Everyone」に応答すると、間違ったヘッダーが表示されます(たとえば、Thunderbirdを使用すると正しい形式が生成されます)。これらの応答は一部のシステムでは拒否されます。

メールヘッダーに記載されている情報がRFC 5322およびRFC 2047の仕様に準拠していないため、メールは当社のメールシステムから拒否されました。ヘッダーフィールド 'To'が構文上正しくありません。

問題の電子メールヘッダーは次のとおりです(「受信者:」行に特に注意してください)。

Received: from ...
Reply-To: ...
From: <[email protected]>
To: <[email protected]>, <organisation: [email protected]>;
References: <[email protected]>
In-Reply-To: <[email protected]>
Subject: AW: here goes the subject

明らかに、一部のメールクライアントは、提供された配布リスト名を最初の受信者の電子メールアドレスの一部として解釈します。

現在の質問は次のとおりです。 (1) 犯人は誰ですか? (2)正しい形式は何ですか? (3) サーバーが一部の RFC に従わずに元のメッセージを配布していますか?それともメールクライアントまたはメールシステムの欠陥ですか?

=====最後の修正======

これは明らかに不足側の間違いでした。チケットが発行されました。

答え1

(これは間違っているかもしれませんが、以下に役立つ議論があるので、そのままにしてください)

ここで、organization は配布リストの名前です。

元の電子メールを生成したものは何でも問題があります。メールボックス名(@domainの前のビット)には、スペース、@文字、およびその他のあらゆる種類の奇妙なアイテムを含めることができます。したがって、転送では、To:ヘッダーの最初の項目を「組織:[Eメール保護]」。

明示的なスペースを引用するかエスケープする必要があるかを判断するには、多くの読書が必要です(メールボックス名の「@」文字がそうです)。したがって、これがRFCに準拠していないと主張するバグが正しいかどうかは言えません。しかし、これが必須ではないにもかかわらず、望ましい動作ではないので、ポイントは議論の余地があります。

答え2

RFC 5322グループアドレスの現在の仕様です。付録A.1.3に記載されています。

From: Pete <[email protected]>
To: A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>;
[…]

このメッセージのTo:フィールドには「受信者」というグループがあります。グループ「ここには3つの住所が含まれています[...]

アドレス仕様はセクション 3.4 で正式に定義されています。ここでは関連部分のみを選択します。

3.4.アドレス仕様

アドレスは単一のメールボックスでもメールボックスグループでもかまいません。

group           =   display-name ":" [group-list] ";" [CFWS]
group-list      =   mailbox-list / CFWS
mailbox-list    =   (mailbox *("," mailbox))
mailbox         =   name-addr / addr-spec
name-addr       =   [display-name] angle-addr
angle-addr      =   [CFWS] "<" addr-spec ">" [CFWS]

そして

3.4.1.アドレス仕様

addr-specは、ローカルに解釈された文字列、at記号( "@"、ASCII値64)、最後にインターネットドメインで構成される特定のインターネット識別子です。 [...]アドレス指定では、「@」の周囲にコメントと折りたたみスペースを使用しないでください。

addr-spec       =   local-part "@" domain
local-part      =   dot-atom / quoted-string
domain          =   dot-atom / domain-literal

そして

3.2.3.原子

dot-atom        =   [CFWS] dot-atom-text [CFWS]

obs-*RFC 5322の公式仕様に存在する項目は、廃止予定のスキーマを参照するため、ここでは省略しました。CFWSコメントおよび/または空白の折りたたみが許可されていることを示します。

したがって、どちらの形式も次の定義に従って許可する必要がありますgroup-list

A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>;
A Bare Group:[email protected],[email protected],[email protected];

この説明をあなたのグループリストに適用すると、あなたが持っていることが有効であると言いたいと思います。

To: organisation: [email protected], [email protected];

したがって、問題になるのは受信システムです。 (または攻撃的なヘッダーの書き換えを備えたメディエーションシステム。ファイアウォールデバイスを介して電子メールを送信した場合、またはクライアントがファイアウォールデバイスを介して電子メールを受信した場合はこれを確認します。)

関連情報