UID เฉพาะของ IMAP mail


11

ในระบบเว็บเมล์ภายในของเราเราต้องการแนบบันทึกย่อและผู้ติดต่อกับอีเมลบางรายการ เพื่อที่จะทำสิ่งนี้เราต้องติดตามทุกเมลบนเซิร์ฟเวอร์ IMAP ของเรา

น่าเสียดายที่มาตรฐาน IMAP ไม่ได้บังคับใช้เอกลักษณ์ของ UID ของอีเมลในกล่องจดหมาย (ในโฟลเดอร์ย่อย) มีเครื่องมือ / เซิร์ฟเวอร์ IMAP ใดบ้างที่สร้าง UID ที่ไม่เหมือนใครจริง ๆ ? หรือมีวิธีอื่นที่เราสามารถระบุจดหมายแต่ละฉบับได้อย่างไร ( ฟิลด์ส่วนหัวของMessage-IDไม่ซ้ำกันเนื่องจากเมลบางตัวไม่มีฟิลด์ดังกล่าว)

แหล่งข้อมูลเพิ่มเติม: ID ที่ไม่ซ้ำในโปรโตคอล IMAP - Limilabs.com


1
หากเป็นเพียงอีเมลขาเข้า MTA milter แบบกำหนดเองที่เพิ่ม UUID จะเพียงพอหรือไม่
neutrinus

คำตอบ:


10

tuple ของ (ชื่อโฟลเดอร์, โฟลเดอร์ UIDVALIDITY, ข้อความ UID) แยกแยะข้อความจากคนอื่น ๆ ทั้งหมดในบัญชี IMAP สำหรับข้อความที่กำหนดใด ๆ tuple นั้นสามารถเปลี่ยนระหว่างเซสชันดังนั้นคุณอาจต้องการติดตาม Message-ID เป็นข้อมูลสำรองในกรณีนี้เกิดขึ้น

ใช่มันน่ารำคาญจริงๆ


แต่RFC-2822บอกว่า Message-ID SHOULD มีอยู่ในข้อความซึ่งหมายความว่าจะไม่มี Message-ID ได้เลย
Romeno

1
ถูกต้อง @Romeno IMAP นั้นมีข้อบกพร่องและ Message-ID บางครั้งก็ช่วยได้
ʇsәɹoɈ

6

ฉันไม่รู้ว่าคุณหมายถึงอะไรเมื่อคุณพูดว่า UID นั้นไม่เหมือนกันในกล่องจดหมายแค่อยู่ในโฟลเดอร์ย่อย โดยโฟลเดอร์ย่อยคุณหมายถึงอะไรนอกเหนือจาก INBOX หรือไม่ ไม่ว่าในกรณีใดมันฟังดูผิด ในความเป็นจริงแล้ว UID นั้นไม่ซ้ำกันในแต่ละโฟลเดอร์และไม่สำคัญว่าจะเป็น INBOX หรือโฟลเดอร์อื่น ๆ

สิ่งที่สามารถเกิดขึ้นได้คือ UID สามารถเปลี่ยนระหว่างเซสชันได้ โดยทั่วไปแล้วสิ่งนี้จะเกิดขึ้นหากเซิร์ฟเวอร์ IMAP สูญเสียดัชนีและต้องสร้างใหม่หรือหากจดหมายถูกย้ายจากเซิร์ฟเวอร์ IMAP หนึ่งไปยังเซิร์ฟเวอร์อื่น ฯลฯ ... หากเกิดเหตุการณ์นี้คุณจะสูญเสียการเชื่อมโยงทั้งหมดระหว่างอีเมลและข้อมูลเพิ่มเติม (โน้ตหรือผู้ติดต่อ)

คุณสามารถพึ่งพาสิ่งนี้: โพสต์จะไม่เคยอ้างถึงข้อความที่แตกต่างกัน อาจจะยังคงใช้ได้และอ้างถึงข้อความเดิมที่ถูกอ้างถึงเสมอมิฉะนั้นจะกลายเป็นโมฆะ

คุณอาจต้องการตรวจสอบว่าเซิร์ฟเวอร์ IMAP เฉพาะของคุณสร้างและดูแล UID อย่างไร เซิร์ฟเวอร์ IMAP ที่แตกต่างกันให้สัญญาที่แตกต่างกันเกี่ยวกับความคงอยู่ของค่า UID แม้ภายในเซิร์ฟเวอร์ IMAP เดียวก็อาจแตกต่างกันไปขึ้นอยู่กับรูปแบบกล่องจดหมายที่ใช้งานอยู่ ตัวอย่างเช่นด้วย Dovecot คาดหวัง UID ที่บอบบางน้อยกว่าด้วย mdbox กว่ากับ mbox หรือ Maildir เพราะข้อมูลเมตาจะถูกรวมเข้ากับอีเมลจริงที่มี mdbox มากขึ้น

ฉันแนะนำให้ใช้ UID เพื่ออ้างถึงข้อความบนเซิร์ฟเวอร์ IMAP พร้อมกับMessage-IDสำรอง Message-IDไม่ดีเท่าที่ควรเพราะมีการทำซ้ำและ (สำหรับเซิร์ฟเวอร์ IMAP ส่วนใหญ่) การค้นหาMessage-IDอาจช้ากว่า แต่ดีกว่าการสูญเสียการติดตามข้อความอย่างสมบูรณ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.