Differences between revisions 1 and 44 (spanning 43 versions)
Revision 1 as of 2008-02-28 05:31:50
Size: 2847
Editor: TimoSirainen
Comment:
Revision 44 as of 2008-07-11 17:33:13
Size: 3880
Editor: TimoSirainen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
 * Search: SEARCH command correctness.
 * Expunges: How messages expunged by another session are handled.
  * A: Expunging a message from one session keeps it available for other sessions until they can be notified that it's expunged. Flag updates to expunged messages may not be visible to other sessions though.
  * B: Some cached fields may be returned for expunged messages, but message bodies can't be retrieved anymore. Flags can still be updated within the session (but updates may not be visible to other sessions).
  * C: Even message flags can't be updated for expunged messages.
 * Expunge fetch: If message is expunged in one session, can another session that still sees the message fetch its contents?
  * Yes: Yes, everything can be fetched
  * Cached: Only cached data can be fetched. Message header or body can't be.
  * No: Nothing but flags can be fetched.
 * Expunge store: If message is expunged in one session, can another session update its flags?
  * Yes: Yes, and a 3rd session also sees the change
  * Session: Yes, but a 3rd session won't see the change
  * Delayed: Yes, but a 3rd session won't see '''any''' changes until EXPUNGEs are reported
  * Ignored: STORE command replies OK, but no change is made
  * No: STORE command replies NO
 * Failures: Number of failures using [:ImapTest/Tests:command/reply tests] (failures / number of tests). These numbers may not be exact all the time, because the tests are still changing.
Line 14: Line 20:
|| '''Server''' || '''Checkpoint''' || '''\Recent''' || '''Atomic flags''' || '''Search''' || '''Expunges''' ||
|| [http://www.dovecot.org/ Dovecot] 1.1.rc2+ || Yes || Yes || Yes || OK || B ||
|| [http://www.washington.edu/imap/ UW-IMAP] 2007a.DEV, mix format || Yes || Yes || Yes || OK || A ||
|| [http://www.zimbra.com/ Zimbra] 5.0.1 || Yes || Yes || Yes || OK || C ||
|| '''Server''' || '''Checkpoint''' || '''\Recent''' || '''Atomic flags''' || '''Expunge fetch''' || '''Expunge store''' || '''Failures''' ||
|| [http://www.dovecot.org/ Dovecot] 1.1.0+ || Yes || Yes || Yes || Cached || Yes || 0/34 ||
|| [http://panda.com/imap/ Panda] 2008, mix format || Yes || Yes || Yes || Yes || Session || 0/34 ||
Line 21: Line 26:
|| '''Server''' || '''Checkpoint''' || '''\Recent''' || '''Atomic flags''' || '''Search''' || '''Expunges''' ||
|| [http://www.archiveopteryx.org/ Archiveopteryx] 2.06 || No |||| ? (connections hang too easily) || Bugs || C ||
|| [http://www.courier-mta.org/imap/ Courier] 4.3.0 || Yes || Unreliable || Yes || SMALLER/LARGER wrong || C ||
|| [http://cyrusimap.web.cmu.edu/ Cyrus] 2.3.9 || No || Unreliable || Bugs || Int.dates wrong || B? Buggy ||
|| [http://www.dovecot.org/ Dovecot] 1.0 || Yes || Unreliable || Bugs || Int.dates wrong || B ||
|| [http://www.isode.com/products/m-box.html Isode M-Box] 14.2a0 || No || Unreliable || Yes || () bugs || C ||
|| [http://www.sun.com/software/products/messaging_srvr/index.xml Sun Java Messenging Server] 6.3-0.15 || No || Unreliable || Bugs || Bugs || A ||
|| [http://www.washington.edu/imap/ UW-IMAP] 2007, mix format || Yes || Yes || Bugs || OK || A ||
|| '''Server''' || '''Checkpoint''' || '''\Recent''' || '''Atomic flags''' || '''Expunge fetch''' || '''Expunge store''' || '''Failures''' ||
|| [http://www.dovecot.org/ Dovecot] 1.0.15 || Yes || Unreliable || Bugs || Cached || Yes || 1/34 ||
|| [http://www.washington.edu/imap/ UW-IMAP] 2007b, mix format || Yes || Yes || Yes || Yes || Session || 2/34 ||
|| [http://www.isode.com/products/m-box.html Isode M-Box] 14.3a0 || No || Unreliable || Yes || Cached || Ignored || 6/34 ||
|| [http://www.communigate.com/community/ CommuniGate Pro] 5.2.1 || Yes || Yes || Yes || Cached (some) || No || 8/34 ||
|| [http://www.zimbra.com/ Zimbra] 5.0.5 || Yes || Yes || Yes || Cached || No || 8/34 ||
|| [http://cyrusimap.web.cmu.edu/ Cyrus] 2.3.12p2 || No || Unreliable || Bugs || Cached || Delayed || 9/34 ||
|| [http://www.sun.com/software/products/messaging_srvr/index.xml Sun Java Messenging Server] 6.3-0.15 || No || Unreliable || Bugs || Yes || Delayed || 9/34 ||
|| [http://www.gmail.com/ GMail] 2008-06-24 || No || Unreliable || Bugs || Yes || No (\Deleted flag expunges) || 15/34 ||
|| [http://www.courier-mta.org/imap/ Courier] 4.3.1 || Yes || Unreliable || Yes || No || No || 18/34 ||
|| [http://www.citadel.org/ Citadel] 7.36 || No || Unreliable || Yes || Yes || Session (flag changes are never seen by other sessions) || 19/34 ||
|| [http://www.dbmail.org/ dbmail] 2.3.3 |||||| Crashes too early to test. APPEND missing EXISTS replies. || Yes || Delayed (always) || ? ||
Line 30: Line 39:
Major problems with multiple connections (makes further testing difficult): Major problems with multiple connections (makes further testing difficult and MAY CAUSE ACCIDENTAL MAIL LOSS!):
Line 32: Line 41:
|| '''Server''' || '''Checkpoint''' || '''\Recent''' || '''Atomic flags''' || '''Search''' || '''Expunges''' ||
|| [http://www.citadel.org/ Citadel] 7.32 || No || ? || ? || Bugs || EXPUNGEs sent too often ||
|| [http://www.communigate.com/community/ CommuniGate Pro] 5.2.0 || ? || ? || ? || () bugs || C - EXPUNGes lost sometimes ||
|| [http://www.kerio.eu/kms_home.html Kerio Mail Server] 6.5.0 || ? || ? || ? || Bugs || EXPUNGEs not sent ||
|| '''Server''' || '''Checkpoint''' || '''\Recent''' || '''Atomic flags''' || '''Expunge fetch''' || '''Expunge store''' || '''Failures''' ||
|| [http://www.archiveopteryx.org/ Archiveopteryx] 2.10 || ? || ? || ? || No || No || EXPUNGEs are sent wrong ||
|| [http://www.ibm.com/software/lotus/products/notes/ IBM Domino] 8.0 || No || Unreliable || ? || ? || No || 16/34 - Too many EXPUNGEs are sent, EXISTS is dropped before sending EXPUNGEs, FETCHing with valid messagesets produce errors ||
|| [http://www.kerio.eu/kms_home.html Kerio Mail Server] 6.5.1 || ? || ? || ? || ? || ? || 18/34 - EXPUNGEs are sent wrong ||

IMAP Server Compliance

  • Checkpoint: checkpoint parameter works. When issuing a CHECK command in all sessions, their state looks identical.
  • \Recent: Exactly one session sees a new message as \Recent - no more and no less.
  • Atomic flags: Flags and keywords can be added/removed in multiple sessions without one session dropping changes made by other (own_flags test)
  • Expunge fetch: If message is expunged in one session, can another session that still sees the message fetch its contents?
    • Yes: Yes, everything can be fetched
    • Cached: Only cached data can be fetched. Message header or body can't be.
    • No: Nothing but flags can be fetched.
  • Expunge store: If message is expunged in one session, can another session update its flags?
    • Yes: Yes, and a 3rd session also sees the change
    • Session: Yes, but a 3rd session won't see the change
    • Delayed: Yes, but a 3rd session won't see any changes until EXPUNGEs are reported

    • Ignored: STORE command replies OK, but no change is made
    • No: STORE command replies NO
  • Failures: Number of failures using [:ImapTest/Tests:command/reply tests] (failures / number of tests). These numbers may not be exact all the time, because the tests are still changing.

Fully compliant servers:

Server

Checkpoint

\Recent

Atomic flags

Expunge fetch

Expunge store

Failures

[http://www.dovecot.org/ Dovecot] 1.1.0+

Yes

Yes

Yes

Cached

Yes

0/34

[http://panda.com/imap/ Panda] 2008, mix format

Yes

Yes

Yes

Yes

Session

0/34

Non-compliant servers:

Server

Checkpoint

\Recent

Atomic flags

Expunge fetch

Expunge store

Failures

[http://www.dovecot.org/ Dovecot] 1.0.15

Yes

Unreliable

Bugs

Cached

Yes

1/34

[http://www.washington.edu/imap/ UW-IMAP] 2007b, mix format

Yes

Yes

Yes

Yes

Session

2/34

[http://www.isode.com/products/m-box.html Isode M-Box] 14.3a0

No

Unreliable

Yes

Cached

Ignored

6/34

[http://www.communigate.com/community/ CommuniGate Pro] 5.2.1

Yes

Yes

Yes

Cached (some)

No

8/34

[http://www.zimbra.com/ Zimbra] 5.0.5

Yes

Yes

Yes

Cached

No

8/34

[http://cyrusimap.web.cmu.edu/ Cyrus] 2.3.12p2

No

Unreliable

Bugs

Cached

Delayed

9/34

[http://www.sun.com/software/products/messaging_srvr/index.xml Sun Java Messenging Server] 6.3-0.15

No

Unreliable

Bugs

Yes

Delayed

9/34

[http://www.gmail.com/ GMail] 2008-06-24

No

Unreliable

Bugs

Yes

No (\Deleted flag expunges)

15/34

[http://www.courier-mta.org/imap/ Courier] 4.3.1

Yes

Unreliable

Yes

No

No

18/34

[http://www.citadel.org/ Citadel] 7.36

No

Unreliable

Yes

Yes

Session (flag changes are never seen by other sessions)

19/34

[http://www.dbmail.org/ dbmail] 2.3.3

Crashes too early to test. APPEND missing EXISTS replies.

Yes

Delayed (always)

?

Major problems with multiple connections (makes further testing difficult and MAY CAUSE ACCIDENTAL MAIL LOSS!):

Server

Checkpoint

\Recent

Atomic flags

Expunge fetch

Expunge store

Failures

[http://www.archiveopteryx.org/ Archiveopteryx] 2.10

?

?

?

No

No

EXPUNGEs are sent wrong

[http://www.ibm.com/software/lotus/products/notes/ IBM Domino] 8.0

No

Unreliable

?

?

No

16/34 - Too many EXPUNGEs are sent, EXISTS is dropped before sending EXPUNGEs, FETCHing with valid messagesets produce errors

[http://www.kerio.eu/kms_home.html Kerio Mail Server] 6.5.1

?

?

?

?

?

18/34 - EXPUNGEs are sent wrong

None: ImapTest/ServerStatus (last edited 2023-11-07 21:14:12 by TimoSirainen)