대부분의 메일 서버에서 어떤 IMAP 플래그가 안정적으로 지원됩니까?


21

사서함으로 보낸 전자 메일에 반응하는 응용 프로그램을 작성 중입니다. IMAP을 통해 이메일을 검색합니다. 메일 서버 구성을 제어하지 않는 여러 시스템에 배포됩니다.

처리 된 메시지를 나타 내기 위해 IMAP 플래그를 사용하고 싶습니다. 응용 프로그램에서 합리적으로 의존 할 수 있도록 시스템 플래그가 충분히 광범위하게 지원됩니까? 사용자 정의 플래그가 충분히 광범위하게 지원됩니까?

(답이 "ha ha, not chance"인 경우 폴더를 대신 사용합니다.)

감사

답변:


20

예제 IMAP 서버 세션 모음을 살펴보십시오 . 당신이 볼 때마다 기본적으로 PERMANENTFLAGS포함하고 \*, 서버는 사용자 정의 플래그를 지원합니다.

이 목록에 추가하기 위해 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)

마찬가지로 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.

Exchange 2010에서 세션을 찾을 수 없습니다.

따라서 Exchange가 주목할만한 절제 자라는 것은 보편적이지 않지만 확실히 그렇지 않습니다.


6

주요 IMAP 프로토콜 문서는 RFC3501입니다. 섹션 2.3.2는 모든 IMAP 구현이 작동해야하는 표준 플래그를 설명합니다 .

응용 프로그램에서 합리적으로 의존 할 수 있도록 시스템 플래그가 충분히 광범위하게 지원됩니까?

실제로 RFC3501은 범용 시스템 플래그를 설명합니다.

사용자 정의 플래그가 충분히 광범위하게 지원됩니까?

사용자 정의 플래그의 주제에는 RFC가 없으며 제안서 만 있습니다.

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에는 동일한 영구 플래그 집합이 있습니다.

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

1
Office 365와 동일* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags
Nisd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.