以前書いたように今のPOP3の未読管理はサーバから返されるUIDLの順番が変わらないことを前提にしています。ところが、私が使っているPOP3サーバで時々重複受信するので調べてみたところ、UIDLの順番が変わることがあることが発覚しました。どうも、SMTPサーバがローカルスプールに配送した時間がまったく同じだと順序が入れ替わってしまうようです。POP3サーバの名前がわからないので他のところでも起きるのかどうか定かではないのですが、仕様なのかバグなのか。。
しょうがないので、重複チェックをするときに後ろ側だけでなく前側もいくつかチェックするようにしようかなと思っています。10個くらいチェックすれば通常の用途には十分かな。