За последние 24 часа нас посетили 15027 программистов и 1766 роботов. Сейчас ищет 1531 программист ...

Изменяется uid

Тема в разделе "Работа с почтой", создана пользователем mvi, 17 июн 2010.

  1. mvi

    mvi Активный пользователь

    С нами с:
    29 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Работаю с pop3-сервером через imap-функции PHP. В теории UID сообщения не должен меняться при удалении писем. Удаляю сообщение. UID оставшихся меняется и всегда равен порядковому номеру сообщения. Что это может быть такое?

    P.S. Вот так определяю UID: $uid = imap_uid($mbox, $i), где $mbox - stream, $i - порядковый номер сообщения

    Заранее благодарен
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.557
    Симпатии:
    631
    ух ты, даже не знал про такие o_0
    логично, что этот сервер работает так. Кстати, не факт, что UID не должен меняться. Он просто должен оставаться уникальным для существующих писем.
     
  3. mvi

    mvi Активный пользователь

    С нами с:
    29 май 2010
    Сообщения:
    9
    Симпатии:
    0
    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... ну это тоже как-то ненормально. Должен же быть какой-то уникальный идентификатор...