2017-06-23 2 views
0

電子メールを送信または中継するシステムを開発する際に、リモート(SMTP)ホストによるネットワークタイムアウトや重大な瞬間のシステム障害は、送信者が電子メールが転送されたかどうかを判断できない解決につながります。同じMessage-Idの電子メールを重複排除する受信者に頼ることはできますか?

保証された配信を実装するためには、少なくとも一度のセマンティクスが有望な選択肢のようです。これに関しては、電子メールを再送信するときに同じMessage-Idが使用されている場合、重複排除がダウンストリームのどこかで発生すると仮定することは合理的ですか?

答えて

0

重複排除は重複または重複情報を排除します。 SMTPサーバーに関しては、送信者の真正性、電子メール内のデータの整合性/品質を確認するだけです。つまり、メールが正規のものであり、受信者に配信されるのが有効であるかどうかをチェックします。

配信が必要なすべてのメッセージについて、Message-IDがdelievert/transportサーバーでチェックされていないと思われます。 MUA(Mail User Agent)またはMSA(Mail Submission Agent)が送信するすべてのメールの一意性を保証する責任があります。Message-ID

0

Message-ID特定のメールクライアントが重複排除を実行することができますが、SMTPのRFCではこれについて言及していません。その代わりに、実装は、重要なタイミングの削減に努力しなければならない状態:

RFC 5321、「簡易メール転送プロトコル」6.1. Reliable Delivery and Replies by Email読み:

のタイムアウトの結果、重複したメッセージを受信しないようにするために、 受信者SMTPは、 の最後のメッセージに応答するのに必要な時間を最小限に抑える必要があります。<CRLF> <CRLF>データ・インジケータの最後。この問題の詳細については、 のRFC 1047を参照してください。 AVOIDING SYNCHRONIZATION PROBLEMS

そして、RFC 1047「重複メッセージとSMTP」の状態は:

同期の問題を回避する最善の方法は、状態間での同期ギャップの 長さを[最小にすることです最後のドット]。換言すれば、メーラーを受信する は、できるだけ早く最終ドットを確認し、後でメッセージの複雑な処理を 行う必要があります。

関連する問題