Những cờ IMAP nào được hỗ trợ đáng tin cậy trên hầu hết các máy chủ thư?


21

Tôi đang viết một ứng dụng phản ứng với các email được gửi đến hộp thư. Nó lấy các email thông qua IMAP. Nó sẽ được triển khai tới một số hệ thống mà tôi không kiểm soát cấu hình máy chủ thư.

Tôi muốn sử dụng cờ IMAP để cho biết thư nào đã được xử lý. Các cờ hệ thống có được hỗ trợ đủ rộng rãi để tôi có thể phụ thuộc hợp lý vào chúng trong ứng dụng của mình không? Các cờ do người dùng định nghĩa có được hỗ trợ rộng rãi không?

(Nếu câu trả lời là "ha ha, không phải là cơ hội", thì tôi sẽ sử dụng các thư mục thay thế.)

Cảm ơn

-Ben

Câu trả lời:


20

Hãy xem này bộ sưu tập các phiên máy chủ IMAP này . Về cơ bản bất cứ khi nào bạn thấy PERMANENTFLAGScó chứa \*, máy chủ sẽ hỗ trợ các cờ do người dùng xác định.

Để thêm vào danh sách đó, đây là đoạn trích từ phiên Gimap (Google Mail IMAP):

* OK Gimap ready for requests from 192.0.2.1 5if380490pzk.17
a login username password
* CAPABILITY IMAP4rev1 UNSELECT LITERAL+ IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE
a OK username@gmail.com authenticated (Success)
b select inbox
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]
* OK [UIDVALIDITY 2]
* 1089 EXISTS
* 0 RECENT
* OK [UIDNEXT 2371]
b OK [READ-WRITE] inbox selected. (Success)
c logout
* BYE LOGOUT Requested
c OK 73 good day (Success)

Và tương tự, một phiên từ Exchange 2007:

* OK Microsoft Exchange Server 2007 IMAP4 service ready
00000000 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI IDLE NAMESPACE LITERAL+
00000000 OK CAPABILITY completed.
   [...]
00000003 SELECT INBOX
* 1 EXISTS
* 0 RECENT
* FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)
* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags
* OK [UIDVALIDITY 472] UIDVALIDITY value
* OK [UIDNEXT 7] The next unique identifier value
00000003 OK [READ-WRITE] SELECT completed.

Tôi không thể tìm thấy một phiên từ Exchange 2010.

Vì vậy, nó không phải là phổ quát - với Exchange là người kiêng khem đáng chú ý - nhưng chắc chắn nó phổ biến hơn không.


6

Tài liệu giao thức IMAP chính là RFC3501. Mục 2.3.2 mô tả các cờ tiêu chuẩn mà mọi triển khai IMAP phải hoạt động.

Các cờ hệ thống có được hỗ trợ đủ rộng rãi để tôi có thể phụ thuộc hợp lý vào chúng trong ứng dụng của mình không?

Thật vậy, RFC3501 mô tả các cờ hệ thống phổ quát.

Các cờ do người dùng định nghĩa có được hỗ trợ rộng rãi không?

Không có bất kỳ RFC nào về chủ đề cờ do người dùng xác định, chỉ đề xuất .

RFC 3501                         IMAPv4                       March 2003

2.3.2.  Flags Message Attribute

   A list of zero or more named tokens associated with the message.  A
   flag is set by its addition to this list, and is cleared by its
   removal.  There are two types of flags in IMAP4rev1.  A flag of
   either type can be permanent or session-only.

   A system flag is a flag name that is pre-defined in this
   specification.  All system flags begin with "\".  Certain system
   flags (\Deleted and \Seen) have special semantics described
   elsewhere.  The currently-defined system flags are:

        \Seen
           Message has been read

        \Answered
           Message has been answered

        \Flagged
           Message is "flagged" for urgent/special attention

        \Deleted
           Message is "deleted" for removal by later EXPUNGE

        \Draft
           Message has not completed composition (marked as a draft).

        \Recent
           Message is "recently" arrived in this mailbox.  This session
           is the first session to have been notified about this
           message; if the session is read-write, subsequent sessions
           will not see \Recent set for this message.  This flag can not
           be altered by the client.

           If it is not possible to determine whether or not this
           session is the first session to be notified about a message,
           then that message SHOULD be considered recent.

           If multiple connections have the same mailbox selected
           simultaneously, it is undefined which of these connections
           will see newly-arrived messages with \Recent set and which
           will see it without \Recent set.

   A keyword is defined by the server implementation.  Keywords do not
   begin with "\".  Servers MAY permit the client to define new keywords
   in the mailbox (see the description of the PERMANENTFLAGS response
   code for more information).

   A flag can be permanent or session-only on a per-flag basis.
   Permanent flags are those which the client can add or remove from the
   message flags permanently; that is, concurrent and subsequent
   sessions will see any change in permanent flags.  Changes to session
   flags are valid only in that session.

    Note: The \Recent system flag is a special case of a
    session flag.  \Recent can not be used as an argument in a
    STORE or APPEND command, and thus can not be changed at
    all.

4

Exchange 2010 có cùng bộ PERMANENTFLAGS

* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Perman
ent flags

1
Tương tự cho Office 365* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags
Quyền hạn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.