2010-01-16 24 views
7

Làm cách nào để xác định UID của thư được thêm qua APPEND vào hộp thư? Thông qua STATUS Tôi có thể nhận được dự đoán về giá trị tiếp theo trước và sau đó tôi có thể SEARCH, nhưng dựa vào những điều này, hãy giới thiệu một điều kiện chủng tộc vì các tin nhắn khác có thể đã được thêm vào giữa các lệnh này.Xác định uid của thư được nối vào hộp thư qua IMAP

Trả lời

6

Nếu máy chủ IMAP của bạn hỗ trợ UIDPLUS, bạn sẽ luôn nhận được phản hồi APPENDUID. Điều này sẽ chứa UID và thời hạn hiệu lực cho UID.

cú pháp mẫu từ RFC 4315:

S: A003 OK [APPENDUID 38505 3955] APPEND completed 

Nếu mailserver của bạn doesnt hỗ trợ UIDPLUS, bạn sẽ phải làm một FETCH cho UID, một khi hoạt động append của bạn kết thúc. Nếu bạn chắc chắn rằng không có thư nào được thêm sau khi chắp thêm, hãy tìm thư cuối cùng trong câu trả lời FETCH.

FETCH 1:* (UID) 

Nếu bạn đang lo lắng về các tin nhắn khác bị thêm vào, bạn có thể tiết kiệm một tiêu đề IMAP như Message-ID trước khi APPEND và sau đó sử dụng nó trong các hoạt động FETCH.

Các vấn đề liên quan