対応バージョン: m-FILTER Ver.4 Ver.5
対応OS: すべてのOS
メールメッセージは、
・メールヘッダ(宛先・差出人情報等)
・メールボディ(本文、添付ファイル)
によって構成されていますが、これらの情報は
メールの送受信時のSMTP通信では使用されていません。
SMTP通信では、
「メールクライアントがメール送信時に付与する
エンベロープ情報」のみで宛先・差出人を判断します。
【SMTP通信で配送されるメールデータ構成例】
--------------------------------------------------------------
■エンベロープ
MAIL FROM: user01@test.com
RCPT TO: user01@example.co.jp
RCPT TO: user02@example.co.jp
--------------------------------------------------------------
■メールメッセージ
├
・メールヘッダ
│ From: user01@test.com
│ To: user01@example.co.jp
│ Cc: user02@example.co.jp
│
└
・メールボディ
※本文、添付ファイル
--------------------------------------------------------------
【エンベロープ】
SMTP通信で使用される宛先・差出人情報を指します。
エンベロープは配送経路でMTAによって削除されメールボックス到達時には
存在しない状態となるため、「m-FILTER」のPOP通信でエンベロープ情報を
条件としたルール作成やPOP通信によるアーカイブでエンベロープ情報を
記録することはできません。
【メールヘッダ】
SMTP通信では使用されないメールデータ内に記述されたメッセージ情報を
指します。
宛先・差出人以外にも件名やメーラー、日付等の様々な情報が
記述されています。
エンベロープとメールヘッダの宛先・差出人情報は、一致しない場合があるため、
「m-FILTER」をご利用する上で注意が必要です。
==============================================================
■例1. 送信者がBCCを使用■
■例2. SMTP配送経路でMTAが宛先毎にメールを分割■
■例3. 配送不達通知(NDR)等のDSNメール■
==============================================================
■例1. 送信者がBCCを使用■
**************************************************************
※メーラーの宛先設定
To: user01@example.co.jp
Cc: user02@example.co.jp
Bcc: user03@example.co.jp
**************************************************************
メーラーで上記宛先を設定した場合、「m-FILTER」に配送される際には、
以下の状態となります。
---------------------------------------------------------
■エンベロープ
RCPT TO: user01@example.co.jp
RCPT TO: user02@example.co.jp
RCPT TO:
user03@example.co.jp
■メールヘッダ
To: user01@example.co.jp
Cc: user02@example.co.jp
※「Bcc」ヘッダを付与するメールクライアントも存在します。
---------------------------------------------------------
上記の様にメールヘッダにメールアドレスが記載されていなくても
エンベロープ情報があれば、SMTP上は問題なく配送されます。
また、「m-FILTER」では上記の様にメールヘッダーの「To」「Cc」に
存在しないメールアドレス(上記
user03@example.co.jp)をBCCとして認識します。
■例2. SMTP配送経路でMTAが宛先毎にメールを分割■
**************************************************************
※メーラーの宛先設定
To: user01@test.com
Cc: user99@example.co.jp
**************************************************************
**************************************************************
※配送経路
「クライアント(メールソフト)」
↓
↓【*1】
↓
「前段MTA」
↓
↓【*2】
↓
「m-FILTER」
↓
**************************************************************
上記宛先設定と配送経路の場合、「m-FILTER」に配送される前にメールが
分割される場合があります。
※メール分割動作はMTAの仕様に依存しますが、複数宛先の中に異なる
ドメインが存在する場合に分割されるケースが多く報告されています。
【*1】のメッセージ情報
--------------------------------------------------------------
■エンベロープ
RCPT TO: user01@test.com
RCPT TO: user99@example.co.jp
■メールヘッダ
To: user01@test.com
Cc: user99@example.co.jp
--------------------------------------------------------------
【*2】のメッセージ情報
「前段MTA」が宛先(エンベロープ)ごとにメッセージを分割して送信
「メッセージ1」
--------------------------------------------------------------
■エンベロープ
RCPT TO: user01@test.com
■メールヘッダ
To: user01@test.com
Cc: user99@example.co.jp
--------------------------------------------------------------
「メッセージ2」
--------------------------------------------------------------
■エンベロープ
RCPT TO: user99@example.co.jp
■メールヘッダ
To: user01@test.com
Cc: user99@example.co.jp
--------------------------------------------------------------
「m-FILTER」にて
"エンベロープToが2つ以上"や
"エンベロープに○○を含む"
等のルール設定をしている場合、前段MTAのメール分割動作によって
意図したルール判定にならないことがあります。
この様な場合には、メールヘッダ情報でルールを作成するなどの対処が必要です。
■例3. 配送不達通知(NDR)等のDSNメール■
.一般的に宛先ユーザーが存在しない場合に差出人に送信される不達通知には、
エンベロープFromがありません。(RFCにて定義)
※差出人「user01@test.com」が誤った宛先に送信した場合の不達通知
--------------------------------------------------------------
■エンベロープ
From:
RCPT TO: user01@test.com
■メールヘッダ
From:
To: user01@test.com
Subject: MAILER-DAEMON
--------------------------------------------------------------
これは、不達通知にエンベロープFromが存在することで不達通知のループが
発生することを防ぐためとなります。