2009-04-17 29 views
6

私はPerlでNet :: POP3を使用して、MS Exchangeサーバー上のメールボックスを反復処理しています。私は各メッセージ番号でUIDLコマンドを実行し、返されたIDを過去に見たIDと比較して、過去にこのメッセージを処理したかどうかを確認します。しかし、私はまた、個々のPOP3メールボックス内で、同じUIDが異なるメッセージに対して複数回出現しているように見えます。MS Exchange POP3 UIDLコマンドによって提供されるUIDは本当にユニークですか?

これはなぜ起こっているのでしょうか? UIDは本当にユニークではありませんか?または、メッセージが何らかの形で同じメールボックス内に複製されていますか?

答えて

3

The RFCは言う:

が郵便受けに任意に割り当てられたユニークIDを格納する サーバ実装 ための一般的に好ましいが、 本明細書は以下のように を算出するユニークIDを可能にするように意図されていますメッセージのハッシュ は、郵便受けにメッセージ の2つの同一のコピーが同じunique-idを持つ状況を処理できる必要があります。

[私の強調]

+0

おかげで、それは私が探していただけのものです。私がすでに見たUIDを見つけたときには、それを重複として扱い、メッセージを無視して、正しく処理しているようです。 接線の問題は次のようなものです。「このような重複メッセージはどうやって発生するのですか?しかし、それは元の質問の範囲外です。 –

+0

@Peter Woodちょっと速いヒント - UIDルックアップクエリが大文字と小文字を区別したマッチを探していることを確認してください。私は問題を抱えていました。なぜなら、デフォルトの動作では大文字と小文字を区別しないため、コードが特定の電子メールを誤って無視する原因となりました。 –

+0

実際には同じメッセージのシナリオが実際に起こりますか?私がRFCでこの節を読むと、サーバがヘッダに書き込むすべてのタイムスタンプとIDのために厳密に理論的な状況になると思った。 – billpg

関連する問題