#imap #gmail-imap
#imap #gmail-imap
Вопрос:
Каков наилучший общий метод создания клиента IMAP и синхронизации его локального хранилища сообщений с сервером?
Думаю, я ищу правильный способ выяснить, что изменилось в папке IMAP на сервере с момента последней проверки, и загрузить эти изменения, чтобы сохранить их в моей локальной базе данных… Это будет включать сообщения, которых больше нет в папке (удаленные или перемещенные), новые сообщения и измененные сообщения…
Я думаю, что создавать новые сообщения легко, я могу получить самый высокий UID, который у меня есть для папки, а затем найти сообщения с этого UID. Я не уверен в обнаружении сообщений, которые были удалены или перемещены, или изменены (возможно, некоторые флаги изменились в сообщении).
Спасибо!
Ответ №1:
Для синхронизации, вероятно, вам понадобятся все UID и флаги сообщений в каждой папке. Вы можете сравнить локальные кэшированные UID с возвращенными сервером, при этом вы можете выделять новые сообщения и удалять (
Вероятно, вам следует использовать какую-то таблицу для поиска / сравнения, это все ускорит.
Комментарии:
1. Я думаю, что то, что я буду делать, похоже на это. В основном сохраняйте набор всех идентификаторов UID для сообщений за последние x дней для каждой папки, чтобы я мог сравнить это с тем, что я получаю от поиска на сервере для обнаружения удаленных сообщений. Прежде чем делать это, я буду искать новые сообщения, выполняя поиск сообщений с UID> самый высокий UID, который у меня есть для папки…. Спасибо