Унікальність UID-повідомлень електронної пошти


11

У нашій внутрішній системі веб-пошти ми хочемо додавати нотатки та контакти до певних листів. Для цього нам слід відслідковувати кожну пошту на нашому сервері IMAP.

На жаль, стандарт IMAP не забезпечує унікальність UID пошти в поштовій скриньці (лише в папках). Чи є сервер інструментів / IMAP, який генерує UID, які є справді унікальними? Або є інший спосіб, як ми можемо ідентифікувати кожну пошту? ( Поле заголовка повідомлення-ID не є унікальним, оскільки деякі листи не містять такого поля).

Додаткові ресурси: Унікальний ідентифікатор у протоколі IMAP - Limilabs.com


1
якщо мова йде лише про вхідну електронну пошту, достатньо було б користувальницької версії MTA, яка додає UUID?
нейтрин

Відповіді:


10

Пакет (назва папки, папка UIDVALIDITY, повідомлення UID) відрізняє повідомлення від усіх інших в обліковому записі IMAP. Для будь-якого даного повідомлення цей кортеж може змінюватися між сесіями, тому ви можете відстежувати його ідентифікатор повідомлення як резервну копію, якщо це станеться.

Так, насправді це дратує.


Але RFC-2822 говорить, що повідомлення ID ПОТРІБНО існувати у повідомленні, що означає, що повідомлення про ідентифікатор повідомлення взагалі не може бути
Romeno

1
Правильно, @Romeno. IMAP є помилковим, і Ідентифікатор повідомлення допомагає лише іноді.
ʇsәɹoɈ

6

Я не знаю, що ви маєте на увазі, коли ви говорите, що UID не унікальні в поштовій скриньці, просто в папках. Під папками ви маєте на увазі щось, крім INBOX? У будь-якому випадку це звучить неправильно. Ідентифікатори UID насправді є унікальними для кожної папки, і не має значення, чи це INBOX або будь-яка інша папка.

Що може статися, це те, що UID можуть змінюватися між сеансами. Як правило, це трапляється, якщо сервер IMAP втрачає свої індекси та потребує відновлення їх або якщо пошта перенесена з одного сервера IMAP на інший тощо. Якщо це станеться, ви, звичайно, втратите всі асоціації між електронними листами та додатковими даними (нотатки або контакти).

Ви можете розраховувати на це: UID ніколи раптом не посилатиметься на інше повідомлення. Або він залишатиметься дійсним і посилатиметься на те саме повідомлення, на яке він завжди згадувався, або стане недійсним.

Ви можете перевірити, як ваш конкретний сервер IMAP генерує та підтримує UID. Різні сервери IMAP дають різні обіцянки щодо стійкості значень UID. Навіть на одному сервері IMAP він може змінюватися залежно від того, який формат поштової скриньки використовується. Наприклад, з Dovecot очікуйте на тендітні менш UID з mdbox, ніж з mbox або Maildir, оскільки метадані більш тісно інтегровані з фактичними електронними листами з mdbox.

Я пропоную використовувати UID для посилання на повідомлення на сервері IMAP з Message-IDрезервною копією. Message-IDце не так добре, тому що можливі дублікати та пошук (для більшості серверів IMAP) пошук Message-IDможе бути повільнішим, але це краще, ніж повністю втратити відстеження повідомлень.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.