Tôi đang làm việc trong dự án thư khách bằng C#. Tôi đang sử dụng cả giao thức POP và IMAP để giao tiếp với máy chủ. Vấn đề là tôi không thể tìm ra lý do tại sao khi tôi muốn nhận được UID cho một thông báo, kết quả từ máy chủ POP và máy chủ IMAP khác nhau.Cách xác định UID của thư trong IMAP
POP
C: UIDL 1
S: +OK 1 UID2-1269789826
và
IMAP
C: $ FETCH 1 (UID)
S: * 1 FETCH (UID 2)
S: $ OK Fetch completed.
Tại sao kết quả cho việc thu thập các UID là quá khác biệt? Trong IMAP là một chức năng khác cho điều này? Mọi trợ giúp đều được chào đón. Cảm ơn.
UID chỉ là duy nhất khi kết hợp với UIDVALIDITY và nó cụ thể cho một thư mục (giao thức IMAP gọi nó là hộp thư) (xem http://tools.ietf.org/html/rfc3501#section-2.3.1.1 để biết chi tiết). Tuy nhiên, mặc dù combo UID/UIDVALIDITY giải quyết các dupes, nó không được bảo đảm để nguyên vẹn - các máy chủ được phép thay đổi UIDVALIDITY, mặc dù nó không được khuyến khích. –
Ngoài ra, xin lưu ý rằng Gmail thực sự cung cấp các MSGID được đảm bảo là duy nhất và không thay đổi. Sử dụng tiện ích mở rộng "ID thư duy nhất của Gmail" (MSGID) để truy cập chức năng này: https://developers.google.com/gmail/imap_extensions –