Насколько надежны IMAP UID? - PullRequest
4 голосов
/ 20 декабря 2010

Я пишу сканер IMAP, который является частью приложения с открытым исходным кодом, и для инкрементного сканирования я хотел бы использовать UID сообщений, чтобы узнать, видел ли я уже конкретное сообщение или нет.

Теперь я нашел сообщение от 2007 года, в котором говорится, что UID IMAP не всегда надежны. Более конкретно, если установлен флаг UIDNOTSTICKY, вы не можете предполагать, что UID всегда одинаковы. Поэтому мой вопрос заключается в том, должен ли я серьезно относиться к делу UIDNOTSTICKY = true, или серверы IMAP с неприлипающими UID-компонентами унаследованы и больше не используются (широко распространены)?

1 Ответ

8 голосов
/ 30 декабря 2010

Если код ответа UIDNOTSTICKY возвращается во время SELECT или EXAMINE, вы также увидите, что значение UIDVALIDITY в почтовом ящике (термин IMAP для папки) изменяется каждый раз, когда вы выбираете или исследуете почтовый ящик. Но вы все равно должны проверить наличие изменений в UIDVALIDITY, поскольку UIDVALIDITY почтового ящика не гарантируется неизменным, и любое такое изменение делает недействительными ваши кэшированные UID. Да, значения UIDVALIDITY обычно не меняются. Но ваш код будет иметь дело с этим делом, и тем самым вы также охватите случай UIDNOTSTICKY.

...