Клиент IMAP синхронизирует локальный сервер сообщений?

#imap #gmail-imap

#imap #gmail-imap

Вопрос:

Каков наилучший общий метод создания клиента IMAP и синхронизации его локального хранилища сообщений с сервером?

Думаю, я ищу правильный способ выяснить, что изменилось в папке IMAP на сервере с момента последней проверки, и загрузить эти изменения, чтобы сохранить их в моей локальной базе данных… Это будет включать сообщения, которых больше нет в папке (удаленные или перемещенные), новые сообщения и измененные сообщения…

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

Спасибо!

Ответ №1:

Для синхронизации, вероятно, вам понадобятся все UID и флаги сообщений в каждой папке. Вы можете сравнить локальные кэшированные UID с возвращенными сервером, при этом вы можете выделять новые сообщения и удалять (

Вероятно, вам следует использовать какую-то таблицу для поиска / сравнения, это все ускорит.

Комментарии:

1. Я думаю, что то, что я буду делать, похоже на это. В основном сохраняйте набор всех идентификаторов UID для сообщений за последние x дней для каждой папки, чтобы я мог сравнить это с тем, что я получаю от поиска на сервере для обнаружения удаленных сообщений. Прежде чем делать это, я буду искать новые сообщения, выполняя поиск сообщений с UID> самый высокий UID, который у меня есть для папки…. Спасибо