IMAP postalarının UID benzersizliği


11

Dahili web posta sistemimizde, belirli postalara notlar ve kişiler eklemek istiyoruz. Bunu yapmak için IMAP sunucumuzdaki her postayı takip etmemiz gerekiyor.

Maalesef IMAP standardı, bir posta kutusundaki (yalnızca alt klasörlerde) bir postanın UID'sinin benzersizliğini zorunlu kılmaz. Gerçekten benzersiz olan UID'ler üreten herhangi bir araç / IMAP sunucusu var mı? Yoksa her bir postayı tanımlamanın başka bir yolu var mı? ( bazı postalar böyle bir alan içermediğinden , Message-ID başlık alanı benzersiz değildir).

Ek kaynaklar: IMAP protokolünde benzersiz kimlik - Limilabs.com


1
yalnızca gelen e-postalarla ilgili ise, UUID ekleyen özel bir MTA milter yeterli olur mu?
nötrinus

Yanıtlar:


10

Bir grup (klasör adı, klasör UIDVALIDITY, ileti UID) bir iletiyi IMAP hesabındaki diğer tüm iletilerden ayırır. Herhangi bir mesaj için, bu grup oturumlar arasında değişebilir, bu durumda mesaj kimliğini yedek olarak izlemek isteyebilirsiniz.

Evet, gerçekten sinir bozucu.


Ancak RFC-2822 , İleti Kimliği'nin bir iletide var olması gerektiğini, yani hiçbir İleti Kimliği'nin bulunamayacağını söylüyor
Romeno

1
Bu doğru, @Romeno. IMAP hatalı ve Message-ID yalnızca bazen yardımcı oluyor.
ɈsәɹoɈ

6

UID'lerin bir posta kutusunda, sadece alt klasörlerde benzersiz olmadığını söylediğinizde ne demek istediğinizi bilmiyorum. Alt klasörler ile INBOX dışında bir şey mi kastediyorsunuz? Her durumda, kulağa yanlış geliyor. UID'ler aslında her klasörde benzersizdir ve INBOX veya başka bir klasör olması önemli değildir.

Ne olabilir gerçekleşmesi UIDs oturumları arasında değişebilir olmasıdır. Genellikle bu, IMAP sunucusu dizinlerini kaybeder ve bunları yeniden oluşturmak zorunda kalırsa veya posta bir IMAP sunucusundan diğerine geçirilirse, vb ... Bu olursa, elbette e-postalar ve ekstra veriler arasındaki tüm ilişkileri kaybedersiniz. (notlar veya kişiler).

Buna güvenebilirsiniz: bir UID hiçbir zaman aniden farklı bir iletiyi ifade etmez. Ya geçerli kalır ve her zaman atıfta bulunduğu aynı iletiyi belirtir, aksi takdirde geçersiz olur.

Özel IMAP sunucunuzun UID'leri nasıl oluşturduğunu ve koruduğunu kontrol etmek isteyebilirsiniz. Farklı IMAP sunucuları, UID değerlerinin kalıcılığı konusunda farklı vaatlerde bulunur. Tek bir IMAP sunucusunda bile, kullanılan posta kutusu biçimine bağlı olarak değişebilir. Örneğin, Dovecot ile, meta veriler mdbox'lı gerçek e-postalarla daha sıkı bir şekilde entegre edildiğinden, mdbox'lı mbox veya Maildir'den daha az kırılgan UID'ler bekleyin.

IMAP sunucusundaki iletilere Message-IDyedek olarak başvurmak için UID'leri kullanmanızı öneririm . Message-IDyineleme yapmak mümkün olduğundan ve (çoğu IMAP sunucusu için) arama yapmak Message-IDdaha yavaş olabilir, ancak mesajların izini tamamen kaybetmekten daha iyidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.