DomainPOPメール収集 (設定 » サーバ設定 » DomainPOP)を使うと、MDaemonはリモートのPOPメールボックスをダウンロードし、ユーザーへ再配信できるようになります。 MDaemonは指定された認証情報でISPのPOPメールボックスからPOP3プロトコルを使って全メールを収集します。収集後、メールはダイアログの設定に基づいて解析され、メールが通常のSMTP処理でメールサーバーへ届いた時と同じように、ユーザーへ再配信されたり、remoteキューへ配送されたりします。
POP3プロトコルを使って保存されたり取得されたりするメールからは、通常SMTPプロトコルで配信されたメールには付与されている、重要なルーティング情報(これはメールの「envelope」とも呼ばれています)がなくなってしまう点に注意して下さい。ルーティング情報が無い場合、MDaemonは、元の宛先情報を判断するために、メッセージのヘッダ情報を強制的に読み取り、解析を行いますが、これは理にかなった方法ではありません。メッセージヘッダでは、宛先を判断する十分な情報が欠けている場合が時々あります。メールの宛先といった、必要な情報が欠けてしまうという事に、驚かれるかも知れませんが、元々POPプロトコルはメールの配信用のプロトコルではありません。SMTPの場合は、セッション中にプロトコル自身が、メールの宛先を明示するので、メールの内容に影響を受ける事はあまりありません。
POPの収集と配信を確実に安定して行えるよう、MDaemonには強力なヘッダ処理オプションが搭載されています。MDaemonは、メッセージをリモートPOPソースからダウンロードする時に、そのメッセージ内のすべての適切なヘッダを即座に解析し、可能性のある受信者情報を集めます。MDaemonが検査するヘッダに含まれている全てのメールアドレスが、この中に含まれます。
この処理が完了すると、MDaemonの受信者の集合は、ローカルとリモートのセットに分けられます。さらに、ローカルとリモートへ分ける前には、エイリアス変換機能によって全てのメールアドレスが解析され処理されます。(MDaemonで管理しているドメインとメールアドレスのドメインが一致する)ローカルセットのメンバーは、メッセージのコピーを受け取ります。リモートセットに何が起こるかは、このダイアログ内の設定に依存します。これらのアドレスを単純に無視する、Postmasterへサマリリストを転送する、あるいはMDaemonがリモート受信者のメールボックスへメッセージのコピーを実際に配信するように受け付ける、などを選択することができます。リモート受信者へメッセージを配信する事はあまりありません。
重複メッセージや無限ループメールの配信をしないように注意してください。SMTPエンベロープの欠如に起因する一般的な問題は、メーリングリストのメールで現れます。メーリングリストによって配信されたメッセージは、メッセージ本文に宛先アドレスに関する情報を持ちません。それどころか、リストエンジンは単純にTO:フィールドへメーリングリストの名前を挿入します。これは直ちに問題を起こします。TO:フィールドがメーリングリストの名前だった場合、MDaemonでは、このメッセージをダウンロードしTO:フィールドを解析し、同じメーリングリスト宛てにメールを配信します。結果、MDaemonが最初のメッセージをダウンロードしたPOPメールボックスに、同じメッセージのコピーが配信され、再度それをダウンロードするというように、永遠に繰り返すサイクルを開始してしまいます。このような問題に対処するために、メール管理者は、メーリングリストメールを削除するか、メールが正しく配信されるようエイリアスを設定するなどの注意が必要です。また、正しい受信者にメッセージを配信するために、ルーティングルールあるいはコンテンツフィルタを使用することもできます。
このようなメール収集方法の採用時、もう一つの懸念は、主にメッセージの重複の問題です。SMTPを使用してISPのPOPメールボックスに配信されるメールは、いったんDomainPOPを使用して収集されると重複を生成してしまいます。例えば、ドメイン内のユーザへメッセージを送信するとし、同じユーザがCC:(カーボンコピー)をドメイン内の他のユーザへ送信するとします。この場合、SMTPは、同じ内容の2つのコピーをISPのメールボックスへ各受信者宛てに配信します。2つのメッセージファイルは、両方の受信者への参照を含みます。1つはTO:フィールドにあり、もう1つはCC:フィールドにあります。MDaemonでは、これらの同じ2つのメッセージファイルを収集し、それぞれから両方のアドレスを解析します。これは両方の受信者が1通の不要な重複メッセージを受信する結果となります。
このような重複を防ぐために、MDaemonには、重複チェックを行うためのヘッダを指定する機能が搭載されています。通常は、[Message-ID]フィールドの利用が理想的です。
上記の例では両方の2つのメッセージはまったく同じもので、同じ[Message-ID]を使っています。MDaemonはこの値を識別しアドレス情報を参照する前に2通目のメールを削除します。
重複メッセージと無限ループするメッセージを防ぐ最後の方法として、MDaemonにはメールがセッション中に何回往復したか、あるいは[ホップ数]が何回なのか、検出する機能が搭載されています。SMTPメールサーバは、メールの処理毎に、そのメッセージに[Received]ヘッダと併せて「スタンプ」を付与します。MDaemonはそのヘッダをカウントし、指定回数を超えるものについては、これを配信ループとみなし、メールストリームからBadキューへと配信されます。この値はRetryキュー画面で設定することができます。
参照: