TheBat, приципившись на POP3-сервер, первым делом даёт команду UIDL. В ответ сервер возвращает примерно такой список:
Код:
UIDL
+OK 4 messages (15544 octets)
1 115765526022759
2 115765631124638
3 115765632124519
4 115765709024902
Первое число - номер сообщения, который может (и будет) меняться от сесси к сессии. Вторая часть строки - уникальный идентификатор, который для данного сообщения всегда будет один и тот же.
The Bat честно сохраняет UIDL всех писем, которые он видел и получал. Сохраняет в файле ACCOUNT.M_R. Первое число в строке - timestamp, день получения (конкретно - номер дня с 1 января 1970), второе - UIDL.
Timestamp используется для фичи "Leave messages on server - Keep messages on server for N days".
TheBat хранит UIDL в этом файле до тех пор, пока видит такое письмо на сервере. Если в очередную сессию такого UIDL на сервере нет - он стирается из файла.
А теперь самое интересное (хотя, уже и очевидное).
TheBat получает какой-то канал и запоминает все UIDL/MD5 его сообщений. В следующую сессию плагину не удаётся вытянуть этот канал. Значит среди отданных UIDL не будет тех, что прошлый раз были сохранены. Значит TheBat радостно грохнт их из файла. Ну а в следующий раз, очевидно, сочтёт всё это новыми сообщениями.
И хорошего решения этой проблемы, к сожалению, просто не существует.