Работаю с pop3-сервером через imap-функции PHP. В теории UID сообщения не должен меняться при удалении писем. Удаляю сообщение. UID оставшихся меняется и всегда равен порядковому номеру сообщения. Что это может быть такое? P.S. Вот так определяю UID: $uid = imap_uid($mbox, $i), где $mbox - stream, $i - порядковый номер сообщения Заранее благодарен
ух ты, даже не знал про такие o_0 логично, что этот сервер работает так. Кстати, не факт, что UID не должен меняться. Он просто должен оставаться уникальным для существующих писем.
int imap_uid ( resource imap_stream, int msgno ) This function returns the UID for the given message sequence number. An UID is a unique identifier that will not change over time while a message sequence number may change whenever the content of the mailbox changes. This function is the inverse of imap_msgno(). Замечание: This is not supported by POP3 mailboxes Получается, что это работает только для imap. Тогда непонятно, как в POP3 письма идентифицировать. допустим есть pop3-клиент на PHP -установлена опция скачивать сообщения, но не удалять их в ящике -скрипт скачивает сообщения, сохраняется их в БД -как он в следующий раз поймет, что это сообщение не нужно забирать заново? Я конечно понимаю, что есть флаг SEEN, но а если pop3-клиентов 2 и если первый поставил флаг SEEN, то тогда и второй не заберет сообщение. Идентифицировать по набору полей from+time+subject... ну это тоже как-то ненормально. Должен же быть какой-то уникальный идентификатор...