fetchmail при работе в режиме оставления почты на сервере забирает ее так: просматривает письма, начиная со дна мэйлбокса, и если uidl известный, то не скачивает. Происходит это, мягко говоря, небыстро. Поэтому я написал "велосипед", который умеет только забирать почту, но использует дихотомию для определения границы между новыми и старыми сообщениями. Можно ли такую функциональность добавить в fetchmail? В этом случае, кстати, можно будет проверять старые письма и на pop3-серверах, не поддерживающих uidl, если таковые ещё остались: поиск новых среди 10К писем потребует скачивания всего 14 заголовков.
Не хотите в команду да заняться fetchmail? Тогда было бы разумно добавить патч (в любом случае цепляйте), потестировать на дистрибутиве и предложить забрать в апстрим по результатам.
Честно говоря, через код fetchmail я так и не продрался, а то непременно бы вывесил патч. Сам алгоритм-то добавить дело десяти строчек, плюс надо протестировать (а лучше аккуратно показать), что подобная модификация не разрушает работы в случае, скажем, удаления писем, прихода дублей и т.п. (Судя по тому, что я понял из RFC, это так и есть. )
grep -r UIDL . ... ./options.c: P(GT_(" --fastuidl do a binary search for UIDLs\n")); ... Все там давно уже есть, только работает оно как-то странно. Буду разбираться...
Все уже и так есть в наилучшем виде. Баг закрываю.