Где Thunderbird хранит UID последнего сообщения, загруженного через POP?

$/ - это разделитель входной записи, настройка local $/="\n>"; заключается в том, что вход разбивается на запись, заканчивающуюся \n>, после chomp окончание удаляется, однако />*(\S+)/ может не совпадать, так как > используется из предыдущей записи.

из FASTA wikipedia строка, начинающаяся с >, является комментарием и не всегда может быть идентификатором. Однако в случае, если это всегда так, следующее может исправить.

my ($id,$seq) = $seq =~ /^>*(.*)\n(\S+)/;
8
задан Alexey Ivanov 28 January 2013 в 13:06
поделиться

3 ответа

Thunderbird имеет файл, названный popstate.dat, который содержит UID, метка времени (эпоха) и флаг. Флаг указывает на действие, которое Thunderbird должен выполнить для связанного сообщения.

Очевидно, Thunderbird на самом деле не работает как, я описал выше. Я думаю, что Thunderbird делает следующее. Это отправляет POP3 UIDL команда для получения списка UID сохранила на сервере POP. Это затем выдерживает сравнение, этот список к UID сохранил в popstate.dat. Любой UID, которые уже не находятся в popstate.dat должны быть получены новые сообщения. Команда UIDL ранее возвратила номер сообщения и связанный UID. Thunderbird должен затем сделать POP3 RETR команда с помощью номера сообщения, связанного с UID, который это еще не получило. Thunderbird должен также посмотреть на флаг в popstate.dat и примите любые меры для связанного сообщения. Например, флаг d говорит Thunderbird удалять связанное сообщение. f отметьте означает, что Thunderbird имеет только усеченную часть сообщения и должен получить полное сообщение.

В какой-то момент Thunderbird обновляет popstate.dat с новыми сообщениями. Я думаю, что это происходит в пакетном обновлении до popstate.dat после того, как все действия были завершены. Таким образом, если существует 10 новых сообщений для получения, popstate.dat не обновляется, пока все 10 сообщений не были получены.

Я думаю, что моя проблема находится на сервере. По-видимому, наша инфраструктура, обновленная до новой версии сервера POP и нового UIDs, была присвоена на новой версии. Мой popstate.dat имел весь старый UIDs. UIDL к новому серверу POP отправляют список 5000 + UIDs, в котором Thunderbird не имел перечисленным popstate.dat. Так, Thunderbird продолжил загружать все 5000 + сообщения. Если бы новый сервер POP сохранил старый UID затем, то Thunderbird видел бы, что я уже получил большинство 5000 + сообщения и просто загружу тех, что я не имел. Я думаю, что большинство людей в моей организации использует Outlook и не использует POP3, и однако обновление версии было сделано к серверу POP, не вызвал проблему для тех пользователей. Кажется, что некоторый дополнительный уход был необходим, чтобы гарантировать, что новый сервер имел тот же UIDs как старый сервер.Век живи - век учись!

4
ответ дан 6 December 2019 в 00:08
поделиться

Существует расширение для Thunderbird, чтобы найти дубликаты и удалить их. например, на основе идентификатора сообщения (который обычно сгенерирован исходным отправителем почты и таким образом не изменился с Вашим обновлением инфраструктуры).

0
ответ дан 6 December 2019 в 00:08
поделиться

Который там версия программного обеспечения сервера?

http://courier.sourcearchive.com/documentation/0.60.0-2/pop3dserver_8c-source.html

00718 ** UIDL сообщения является действительно просто своим именем файла до первого символа MDIRSEP

Можно ли быть, просто должен заменить первую часть UIDL в popstate.dat к новым?

0
ответ дан 6 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: