Я создаю приложение PHP для синхронизации почтового ящика IMAP с локальной копией. Мне нужно найти способ загрузки только сообщений из папок IMAP, которые я еще не загрузил.PHP IMAP sync a folder
PHP IMAP-библиотека имеет функцию imap_search, чтобы сделать что-то подобное. Например, imap_search ($ conn, 'SINCE "8 августа 2012 г.", SE_UID);
Однако это решение не работает. Часто электронные письма имеют неправильную дату (может быть будущая дата), а синхронизация работает неправильно.
Какова наилучшая практика для синхронизации с сервером IMAP с PHP? Как загрузить реальный список сообщений, которые я еще не загрузил? Пока я вижу только один способ сделать это - загружает идентификаторы всех электронных писем на сервере IMAP и сравнивается со списком, если идентификаторы сохраняются локально. Есть ли лучший способ? Благодарю.
+1 Я считаю, что спецификация требует, чтобы UID на сервере монотонно увеличивались. – tripleee
Вы уверены, что все IMAP-серверы имеют UID как целые числа? Для меня кажется, что некоторые серверы могут иметь идентификаторы как уникальный текстовый код. но я не уверен в этом. –
Нет, спецификация IMAP указывает, что UID всегда увеличивают целые числа. Серверы POP3 могут иметь текстовые uids. – Max