今までは、手元にある最後のメッセージのUIDを取得し、手元のものと同じならば次のメッセージからダウンロードを開始、それ以外ならば最初のメッセージからダウンロードを開始し、ダウンロード時に一通ごとにUIDが手元のUIDリストに含まれているかどうか確認するようにしていましたが、これを変更しました。
手元にある最後のメッセージのUIDを取得するところは同じですが、手元のものと異なった場合、サーバから取得したUIDリストの最初から順番に見ていって、最初に手元に持っていないUIDが現われたところからダウンロードを開始するようにしました。さらにダウンロードするときに一通ごとにUIDを確認するのをやめ、無条件でダウンロードするようにします。
これによって、同じUIDがサーバ上にある場合でもダウンロードできるようになります。ただしサーバ上のメッセージの順番が変わることがないことを前提にしています。これはまず大丈夫でしょう。また、一回目に接続したときに存在したメールが、次回接続したときに削除されていて、サーバ上にそのメールと同じUIDの別のメールがあった場合などには、ダウンロードできません。実際には同じUIDになること自体がレアケースな上に、同じUIDなメールは同じような時間に届くことが殆どだと思われるので、おそらく問題になることは無いでしょう。