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 (failures/total): Number of failures using [:ImapTest/ScriptedTests:scripted tests]. These numbers may not be exact all the time, because the tests are still changing.
- Failure groups: Each test belongs to a wider group of tests, typically testing a command or part of a command. If this count is low but individual command failure count is high, it probably means that the server has failed to implement wrong only a couple of commands.
- Base fails: Number of individual base IMAP4rev1 protocol commands that failed.
- Ext fails: Number of individual IMAP extension commands that failed. Extensions not supported aren't included in the numbers.
Fully compliant servers:
Server |
Checkpoint |
\Recent |
Atomic flags |
Expunge fetch |
Expunge store |
Failure groups |
Base fails |
Ext fails |
[http://www.dovecot.org/ Dovecot] 1.1.0+ |
Yes |
Yes |
Yes |
Cached |
Yes |
0/34 |
0/328 |
0/97 |
[http://panda.com/imap/ Panda IMAP] 2008, mix format |
Yes |
Yes |
Yes |
Yes |
Session |
0/34 |
0/328 |
0/97 |
Non-compliant servers:
Server |
Checkpoint |
\Recent |
Atomic flags |
Expunge fetch |
Expunge store |
Failure groups |
Base fails |
Ext fails |
[http://www.washington.edu/imap/ UW-IMAP] 2007b, mix format |
Yes |
Yes |
Yes |
Yes |
Session |
2/34 |
0/328 |
6/53 |
[http://www.isode.com/products/m-box.html Isode M-Box] 14.3a0 |
No |
Unreliable |
Yes |
Cached |
Ignored |
6/34 |
0/328 |
8/97 |
[http://www.dovecot.org/ Dovecot] 1.0.15 |
Yes |
Unreliable |
Bugs |
Cached |
Yes |
2/34 |
4/328 |
2/53 |
[http://www.communigate.com/community/ CommuniGate Pro] 5.2.1 |
Yes |
Yes |
Yes |
Cached (some) |
No |
8/34 |
8/328 |
0/0 |
[http://cyrusimap.web.cmu.edu/ Cyrus] 2.3.12p2 |
No |
Unreliable |
Bugs |
Cached |
Delayed |
9/34 |
11/328 |
6/53 |
[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 |
17/328 |
9/21 |
[http://www.courier-mta.org/imap/ Courier] 4.3.1 |
Yes |
Unreliable |
Yes |
No |
No |
18/34 |
33/328 |
20/53 |
[http://www.gmail.com/ GMail] 2008-09-20 |
No |
Not implemented |
Bugs |
Yes (but FETCH FLAGS dies) |
No |
15/34 |
36/328 |
0/0 |
[http://www.zimbra.com/ Zimbra] 5.0.5 |
Yes |
Yes |
Yes |
Cached |
No |
8/34 |
50/328 |
2/33 |
[http://www.citadel.org/ Citadel] 7.36 |
No |
Unreliable |
Yes |
Yes |
Session (flag changes are never seen by other sessions) |
19/34 |
98/328 |
0/0 |
[http://www.dbmail.org/ dbmail] 2.3.4 (2.3.x = unstable/dev version - 2.2.x is even worse though) |
Bugs |
Unreliable |
No |
Yes |
Delayed (always) |
Crashes in the middle. |
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] 3.0.0 |
? |
? |
? |
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 |
[http://drupal.zarafa.com/download-community Zarafa] 6.20 beta 3 |
- |
- |
- |
- |
- |
19/21 - No EXPUNGEs are sent from other sessions, EXISTS is used to drop message count |