denisl
Новичок
Как узнать были ли загружены ранее сообщения с почтового сервера?
Здравствуте!
Такой вопрос: пишу почтовый клиент.
Почтовый сервер: POP3
Функции обработки почты - IMAP.
Несколько раз прочитав документацию по iMAP никак не могу понять как мне узнать какие сообщения на сервере новые, а какие я уже считал в локальную папку. Мне требуется оставлять сообщения на сервере после прочтения.
Как я понял из документации, UID должен быть уникальным для каждого сообщения. Значит, если в ящике было например 10 сообщений, то их UID-ы 1......10. И если я сотру первое сообщение, UID-ды будут иметь вид : 2.....10. Так?
А у меня получается что все UID-ы сдвигаются - то есть после удаления первого сообщения они имеют вид: 1.....9.
Получается по UID синхронизировать не могу. Так же в новой сессии съезжает UIDvalidity(который говорит, что полученные ранее UID-ы теперь неправильные).
Так же не совсем понятно как работают флаги. Например после прочтения сообщений я ставлю им флаги \\Seen. А при новом соединении с сервером флаги обнуляются и у всех сообщения флаг Recent имеет статус "N"(значит сообщение новое и не прочитанное).
Что,получается, что флаги актуальны только в рамках текущей сессии? Или это так потому, что работаю с POP3 а не с IMAP-сервером? (ведь IMAP-функции работают с POP3 не в полную силу).
Неужели для синхронизации требуется сравнивать содержимое сообщений на сервере с ранее скаченными? Не верится что-то.
Вобщем если кто поможет разобраться как мне синхронизировать локальную папку с серверным инбоксом - буду благодарен.
Заранее спасибо.
Здравствуте!
Такой вопрос: пишу почтовый клиент.
Почтовый сервер: POP3
Функции обработки почты - IMAP.
Несколько раз прочитав документацию по iMAP никак не могу понять как мне узнать какие сообщения на сервере новые, а какие я уже считал в локальную папку. Мне требуется оставлять сообщения на сервере после прочтения.
Как я понял из документации, UID должен быть уникальным для каждого сообщения. Значит, если в ящике было например 10 сообщений, то их UID-ы 1......10. И если я сотру первое сообщение, UID-ды будут иметь вид : 2.....10. Так?
А у меня получается что все UID-ы сдвигаются - то есть после удаления первого сообщения они имеют вид: 1.....9.
Получается по UID синхронизировать не могу. Так же в новой сессии съезжает UIDvalidity(который говорит, что полученные ранее UID-ы теперь неправильные).
Так же не совсем понятно как работают флаги. Например после прочтения сообщений я ставлю им флаги \\Seen. А при новом соединении с сервером флаги обнуляются и у всех сообщения флаг Recent имеет статус "N"(значит сообщение новое и не прочитанное).
Что,получается, что флаги актуальны только в рамках текущей сессии? Или это так потому, что работаю с POP3 а не с IMAP-сервером? (ведь IMAP-функции работают с POP3 не в полную силу).
Неужели для синхронизации требуется сравнивать содержимое сообщений на сервере с ранее скаченными? Не верится что-то.
Вобщем если кто поможет разобраться как мне синхронизировать локальную папку с серверным инбоксом - буду благодарен.
Заранее спасибо.

