Buggy IMAP servers

This page list bug reports about malfunctioning IMAP servers I came across when writing and supporting nnimap, a Gnus mail backend.

The contents of this page may be freely quoted, as long as a reference to this URL is included. Quoting this page without providing the URL is explicitly forbidden. This page is copyrighted by Simon Josefsson.

Quick links to still broken servers:

Quick links to other interesting protocol behaviour:

Quick links to fixed servers:


Still broken servers

Microsoft Exchange

Microsoft Exchange server (versjon 5.5.2448.8)

Status: supposedly fixed by a service pack.

Superflous whitespace:

* 1 FETCH (... ENVELOPE ("Tue, 18 May 1999 07:44:45 +0200" "RE: Viva le frogs" (("A1" NIL "A1" "D1")) (("A1" NIL "A1" "D1")) (("A1" NIL "A1" "D1")) (("A2" NIL "A2" "A2") (NIL NIL "A3" "D3") ...)) NIL NIL NIL "<[email protected]>")
    

References: [1].

Microsoft Exchange 2000 IMAP4rev1 server version 6.0.4417.0 (xxx.xxx.xxx)

Status: Unknown.

Acknowledge flag but later forgets it. Reportedly only in public groups. If this is a feature, PERMANENTFLAGS should be empty.

57 SELECT "Public Folders/Mailing lists/Ionific internal discussion"
* 8 EXISTS
* 0 RECENT
* FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)
* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Draft $MDNSent)] Permanent flags
* OK [UIDVALIDITY 608] UIDVALIDITY value
57 OK [READ-WRITE] SELECT completed.
...
59 UID STORE 8 +FLAGS (\Flagged)
* 8 FETCH (FLAGS (\Seen \Flagged) UID 8)
59 OK STORE completed.
...
62 SELECT "Public Folders/Mailing lists/Ionific internal discussion"
* 8 EXISTS
* 0 RECENT
* FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)
* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Draft $MDNSent)] Permanent flags
* OK [UIDVALIDITY 608] UIDVALIDITY value
62 OK [READ-WRITE] SELECT completed.
...
65 UID SEARCH FLAGGED
* SEARCH
65 OK SEARCH completed.

Serverversionen 5.5.2653.23 (XXXXXXXXXXXXXXX) Microsoft Exchange IMAP4rev1

Status: unknown

RFC 822 parser used when APPENDing cause data corruption if continuation lines begin with SPC instead of TAB. (Replacing the SPC with TAB below makes the APPEND work.)

777 CLOSE
777 OK CLOSE slutf�rd.
778 APPEND "INBOX.wap" {1639}
+ Klar f�r ytterligare kommandotext.
X-Draft-From: ("nnimap+exno02:INBOX" 3121)
To: XXXXXX XXXXX 
Subject: Re: Certificate Delivery Question
References: <83033FF2C887D311937D0050045408E9B6A7FE@IE-COR-MAIL01>
From: Simon Josefsson 
In-Reply-To: <83033FF2C887D311937D0050045408E9B6A7FE@IE-COR-MAIL01> (XXXXXX
 XXXXX's message of "Tue, 2 Oct 2001 10:02:07 +0200")
Date: Tue, 02 Oct 2001 10:30:13 +0200
Message-ID: 
Lines: 31
User-Agent: Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.0.106
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

XXXXXX XXXXX  writes:

> Hi Simon,
> 	Thanks very much for your reply. It is very helpful. 

It was pointed out to me that the example use a old URL format, see
below.  There may be other problems as well, so please double check
the example before relying on it.

/Simon

> 45
>         CertResponse.cert_info.url length (69)
> 68 74 74 70 3a 2f 2f 77  77 77 2e 65 78 61 6d 70
> 6c 65 2e 6f 72 67 2f 63  65 72 74 3f 69 68 3d 49
> 53 43 35 39 44 51 74 64  37 55 75 6e 42 53 6b 6f
> 30 53 4c 69 59 49 76 35  56 59 25 33 44 3d 26 73
> 6e 3d 41 67 45
>         CertResponse.cert_info.url content
>
> "http://www.example.org/cert?ih=ISC59DQtd7UunBSko0SLiYIv5VY%3D&sn=AgE"
>
> Hope this helps,
> Simon

Please note that this URL form is obsolete.  A CR submitted by RSA Security
and approved in London in February replaced the hash of the issuer name with
the actual name; so the example should read

http://www.example.org/cert?in=Name_of_CA_properly_ASN.1_and_base64_encoded_
here
778 OK APPEND slutf�rd.
779 EXAMINE "INBOX.wap"
* 127 EXISTS
* 1 RECENT
* FLAGS (\Seen \Answered \Flagged \Deleted \Draft)
* OK [PERMANENTFLAGS ()]
* OK [UNSEEN 127] �r det f�rsta dolda meddelandet
* OK [UIDVALIDITY 3866] V�rdet UIDVALIDITY.
779 OK [READ-ONLY] EXAMINE slutf�rd.
780 UID FETCH * UID
* 127 FETCH (UID 127)
780 OK FETCH slutf�rd.
...
860 UID FETCH 126:127 (UID RFC822.SIZE BODY BODY.PEEK[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref)])
* 126 FETCH (UID 126 RFC822.SIZE 1817 BODY ("TEXT" "PLAIN" ("charset" "iso-8859-1") NIL NIL "7BIT" 87 5) BODY[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref)] {191}
Subject: Certificate Delivery Question
From: XXXXXX XXXXX 
Date: Tue, 2 Oct 2001 10:02:07 +0200 
Message-ID: <83033FF2C887D311937D0050045408E9B6A7FE@IE-COR-MAIL01>

)
* 127 FETCH (UID 127 RFC822.SIZE 1609 BODY ("TEXT" "PLAIN" ("charset" "iso-8859-1") NIL NIL "7BIT" 1314 37) BODY[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref)] {2}

)
860 OK FETCH slutf�rd.
861 UID FETCH 127 BODY.PEEK[]
* 127 FETCH (BODY[] {1609}
Received: by exno02.dynas.se 
	id <[email protected]>; Tue, 2 Oct 2001 10:29:59 +0200
Message-ID: <[email protected]>
Subject: 
Date: Tue, 2 Oct 2001 10:29:59 +0200 
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"

Please note that this URL form is obsolete.  A CR submitted by RSA
Security
and approved in London in FebrX-Draft-From: ("nnimap+exno02:INBOX" 3121)
To: XXXXXX XXXXX 
Subject: Re: Certificate Delivery Question
References: <83033FF2C887D311937D0050045408E9B6A7FE@IE-COR-MAIL01>
From: Simon Josefsson 
In-Reply-To: <83033FF2C887D311937D0050045408E9B6A7FE@IE-COR-MAIL01>
(XXXXXX
 XXXXX's message of "Tue, 2 Oct 2001 10:02:07 +0200")
Date: Tue, 02 Oct 2001 10:30:13 +0200
Message-ID: 
Lines: 31
User-Agent: Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.0.106
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

XXXXXX XXXXX  writes:

> Hi Simon,
> 	Thanks very much for your reply. It is very helpful. 

It was pointed out to me that the example use a old URL format, see
below.  There may be other problems as well, so please double check
the example before relying on it.

/Simon

> 45
>         CertResponse.cert_info.url length (69)
> 68 74 74 70 3a 2f 2f 77  77 77 2e 65 78 61 6d 70
> uary replaced the hash of the issuer name with
the actual name; so the example should read

http://www.example.org/cert?in=Name_of_CA_properly_ASN.1_and_base64_enco
ded_
here
 UID 127)
861 OK FETCH slutf�rd.

HP Openmail

HP Openmail B.06.00.U0

Status: unknown

Search command malfunctioning:

22 fetch 1 full
* 1 FETCH (FLAGS ($MdnSent) INTERNALDATE "01-Aug-2000 09:49:10 +0200" RFC822.SIZE 8207 ENVELOPE ("Thu, 27 Jul 2000 08:58:52 +0200" "C++ Report and CUJ" ((NIL NIL "Mogens.Hansen.myh./OU=CPH" "sucs11")) ((NIL NIL "Mogens.Hansen.myh./OU=CPH" "sucs11")) ((NIL NIL "Mogens.Hansen.myh./OU=CPH" "sucs11")) ((NIL NIL "ham/OU=CPH" "sucs11")(NIL NIL "jnd/OU=CPH" "sucs11")(NIL NIL "jrs/OU=CPH" "sucs11")(NIL NIL "jys/OU=CPH" "sucs11")(NIL NIL "nso/OU=CPH" "sucs11")(NIL NIL "rct/OU=CPH" "sucs11")) NIL NIL NIL "") BODY ("TEXT" "PLAIN" ("charset" "ISO-8859-1") NIL NIL "QUOTED-PRINTABLE" 7692 156))
22 OK FETCH completed
23 search from s
* SEARCH
23 OK SEARCH completed
    

References: [1]

Stalker CommuniGate Pro

Version 3.0

Status: unknown

Superflous whitespace before COPYUID:

53 OK  [COPYUID 242380765 58 82] COPY completed
    

Status: unknown

Superflous whitespace between multiparts:

* 1 FETCH (UID 1 RFC822.SIZE 9515 BODY ((("text" "plain" ("charset" "ISO-8859-1") NIL NIL "8bit" 650 33) ("text" "html" ("charset" "ISO-8859-1") NIL NIL "quoted-printable" 3582 97) "alternative") ("image" "jpeg" ("name" "Notebook.jpg") NIL NIL "base64" 4040) "related") BODY[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref)] {162}      
    

Missing whitespace between body_fld_param's:

63 UID FETCH 758:779 (UID RFC822.SIZE BODY BODY.PEEK[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref)])
* 758 FETCH (UID 758 RFC822.SIZE 1839 BODY (("text" "plain" ("charset" "ISO-8859-1") NIL NIL "quoted-printable" 173 6) ("text" "x-vcard" ("charset" "us-ascii""name" "u.allard.vcf") NIL NIL "7bit" 269 13) ("text" "plain" NIL NIL NIL "8bit" 420 7) "mixed") BODY[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref)] {165}
    

Missing line number count in message/rfc822 attachments:

* 608 FETCH (UID 608 RFC822.SIZE 3221 BODY (("text" "plain" ("charset" "ISO-8859-1") NIL NIL "8bit" 314 16) ("message" "rfc822" NIL NIL NIL "7bit" 912 ("Tue, 2 May 2000 14:52:58 +0200" "Inflyttningskalas" (("=?iso-8859-1?Q?J=F6rgen_Pernhult?=" NIL "j.pernhult" "upright.se")) (("=?iso-8859-1?Q?J=F6rgen_Pernhult?=" NIL "j.pernhult" "upright.se")) (("=?iso-8859-1?Q?J=F6rgen_Pernhult?=" NIL "j.pernhult" "upright.se")) ((NIL NIL "b.lindvall" "upright.se")) (("Magnus Hedencrona" NIL "m.hedencrona" "upright.se")) NIL NIL "") ("text" "plain" ("charset" "ISO-8859-1") NIL NIL "8bit" 339 13)) "mixed") BODY[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref)] {191}
    

Sun Internet Mail Server

Sun Internet Mail Server - sims.3.5.1999.03.02.17.58.p5

Status: unknown

Superflous whitespace:

* 1 FETCH (... BODY ("TEXT" "PLAIN"  ("CHARSET" "ISO-2022-JP") ...
    

References: [1], [2].

Sun Internet Mail Server - sims.4.0.2000.05.17.04.13.p6

Status: unknown

"NIL" value in Content Transfer Encoding, not allowed by EBNF in RFC2060, should be "7BIT" instead.

* 1 FETCH (... BODY ((...)("APPLICATION" "MSWORD" ("NAME" "TaskList-EdgWtr_Off.Activ=C.doc" "X-MAC-TYPE" "5738424E" "X-MAC-CREATOR" "4D535744") "<v04210105b5eea3ef7ec3@[134.9.15.14].0.0>" NIL NIL 34441)(...) "MIXED") ...
    

Oracle

Oracle IMAP4r1 (5.0.0.1.49).

Status: unknown

Doesn't send TRYCREATE tags, which it MUST according to RFC2060. (It is indeed possible to create the mailbox below.)

827 UID COPY 11864 "INBOX.gEDA-List"
827 NO Mailbox does not exist
    

Oracle IMAP4r1 (5.2.0.0.28).

Status: unknown

Violates the BNF grammar by inserting spurious white space.

2 STATUS "INBOX/gnus" (uidvalidity uidnext unseen)
* STATUS "INBOX/gnus" (UNSEEN 0 UIDNEXT 14353 UIDVALIDITY 145600 )
2 OK STATUS completed
    

Netscape Messaging Server

IMAP4 service (Netscape Messaging Server 4.15 Patch\ 2 (built May 30 2000)

Status: unknown

Doesn't send TRYCREATE tags, which it MUST according to RFC2060. (It is indeed possible to create the mailbox below.)

827 UID COPY 11864 "INBOX.gEDA-List"
827 NO Mailbox does not exist
    

GroupWise

Status: unknown

Does not return two UIDs for a 1,* UID FETCH command.

186 EXAMINE "INBOX"
* 88 EXISTS
* 1 RECENT
* OK [UNSEEN 37]
* OK [UIDVALIDITY 3]
* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
* OK [PERMANENTFLAGS ()]
186 OK [READ-ONLY] EXAMINE completed
187 FETCH 1,* UID
* 1 FETCH (UID 72001)
187 OK FETCH completed

Status: unknown

Forgets \Seen flags on messages.

553 UID STORE 73969,73989,74021,74042 -FLAGS (\Seen)
* 25 FETCH (FLAGS () UID 73969)
* 26 FETCH (FLAGS () UID 73989)
* 27 FETCH (FLAGS () UID 74021)
* 28 FETCH (FLAGS () UID 74042)
553 OK UID STORE completed
554 EXPUNGE
554 OK EXPUNGE completed
555 CLOSE
555 OK CLOSE completed
556 SELECT "INBOX"
* 51 EXISTS
* OK [UIDVALIDITY 3]
* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Draft \Seen)]
556 OK [READ-WRITE] SELECT completed
557 UID SEARCH UNSEEN UNDELETED
* SEARCH
557 OK UID SEARCH completed
558 UID SEARCH SEEN
* SEARCH 72001 72002 72020 72070 72144 72224 72239 72242 72255 72273
  72276 72286 72290 72307 72646 72759 73047 73194 73223 73226 73403
  73470 73585 73969 73989 74021 74042 74165 74178 78025 78036 78228
  78495 78535 78536 78537 78539 78540 78558 78559 78561 78602 78605
  78606 78620 78795 78796 78807 78816 78817
558 OK UID SEARCH completed

InterChange IMAP4 Server

InterChange IMAP4 Server v3.61.08

Status: unknown

Does not return "* SEARCH" on empty search results.

7 UID SEARCH UNSEEN UNDELETED
7 OK SEARCH Completed

References: [1], [2].

MDaemon

MDaemon 3.X by Alt-N technologies

Status: unknown

Does not return "* SEARCH" on empty search results.

11 UID SEARCH FLAGGED
11 OK SEARCH completed

References: [1]

Status: unknown

Interpretes 1,* as 1:* in FETCH commands.

4 FETCH 1,* UID
* 1 FETCH (UID 1)
* 2 FETCH (UID 2)
...

4 OK FETCH completed

References: [1]

Bincimap

bincimap imap daemon version 1.2.7final

Status: unknown

Does not know the UID of the highest UID in a group:

10 EXAMINE "INBOX"
* 1 EXISTS
* 1 RECENT
* OK [UNSEEN 1] Message 1 is first unseen
* OK [UIDVALIDITY 1083084137]
* OK [UIDNEXT 2] 2 is the next UID
* FLAGS (\Answered \Flagged \Deleted \Recent \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft)] Limited
10 OK EXAMINE completed
11 UID FETCH * UID
11 OK FETCH completed

References: Message-Id x6smepfj49@gzp in gnus.gnus-bug on quimby.gnus.org.

Lotus Notes

Status: unknown

SEARCH command for date-ranges (used when expiring old messages) doesn't work, it complains about missing full-text indices.

109 UID SEARCH UID 446,482,716,1226:1227,1229,1236:1237,1263,1274,1280:1281,1378,1434,1439,1455:1457,1503,1507,1511,1544,1552:1554,1598,1673,1679,1683,1719,1727:1728,1790,1830,1835:1837,1940,1942,2006,2013,2015:2016,2022 NOT SINCE 22-Apr-2005
109 NO SEARCH Database is not full-text indexed
      

References: [1]


Interesting protocol behaviour

University of Washington IMAP

University of Washington IMAP unknown version

Returns OK to a CREATE command even though mailbox was not created with that name.

456 CREATE "#driver.mbx/try"
456 OK CREATE completed
458 SELECT "#driver.mbx/try"
458 NO SELECT failed: Can't open mailbox #driver.mbx/try: no such mailbox

References: [1] [GNUS]


Fixed servers

Cyrus IMAPD

Version <= 1.5.9.

Status: fixed in 1.5.10.

Flags aren't saved.

1150 UID STORE 86 FLAGS (\Seen \Flagged)
* 2 EXISTS
* 2 RECENT
1150 OK Completed
1151 APPEND "user.grossjoh.test" {4320}
...
1152 UID STORE 87 FLAGS (\Seen \Flagged \Answered)
..
1153 UID SEARCH UNSEEN UNDELETED
* SEARCH 86
1153 OK Completed
1154 UID SEARCH SEEN
* SEARCH 85 87
1154 OK Completed
1155 UID SEARCH FLAGGED
* SEARCH 87
    

References: [1].

Novonyx IMAPD

Novonyx is an earlier version of Novell NIMS, later renamed to Novell NetMail.

Status: supposedly fixed as of 2002-08-02, see the Novell NIMS entry below.

Does not return two UIDs for a 1,* UID FETCH command.

186 EXAMINE "INBOX"
* 88 EXISTS
* 1 RECENT
* OK [UNSEEN 37]
* OK [UIDVALIDITY 3]
* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
* OK [PERMANENTFLAGS ()]
186 OK [READ-ONLY] EXAMINE completed
187 FETCH 1,* UID
* 1 FETCH (UID 72001)
187 OK FETCH completed

References: [1]

Novell NIMS

Novell NIMS unknown version but identied by <[email protected]>.

Novonyx is an earlier version of Novell NIMS, later renamed to Novell NetMail.

Status: fixed as of 2002-08-02, verified against <[email protected]>, thanks to Peter Dennis Bartok. Future release incorporating the fix will be be anything higher than 3.1.0b (e.g., 3.1.1).

Does not handle FETCH 1,* or FETCH * query.

* OK myrealbox.com NetMail IMAP4 Agent server ready <[email protected]>
1 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=LOGIN XSENDER X-NETSCAPE X-NOVONYX
...
45 SELECT "INBOX"
* 3 EXISTS
* 0 RECENT
* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
* OK [UIDVALIDITY 1811038] UID validity status
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Draft \Seen)] Permanent flags
45 OK [READ-WRITE] SELECT completed
...
47 UID SEARCH SEEN
* SEARCH 1811039 1811040 1811041
47 OK UID SEARCH completed
...
51 FETCH 1,* UID
* 1 FETCH (UID 1811039)
51 OK FETCH completed
13 FETCH * UID
13 OK FETCH completed

References: [1]

Courier IMAPD

Status: reportedly working in version 1.4.3, thanks to Marcus Frings for testing.

Spurious whitespace in flag lists.

( \Noinferior)
    

References: [1]

Courier IMAPD

Status: fixed 2002-02-24, version 1.4.3 or later

UIDNEXT doesn't work.

128 STATUS "INBOX.Trash" (uidnext)
* STATUS "INBOX.Trash" (UIDNEXT 1)
128 OK STATUS Completed.
[..]
171 UID COPY 370 "INBOX.Trash"
171 OK COPY completed.
...
175 STATUS "INBOX.Trash" (uidnext)
* STATUS "INBOX.Trash" (UIDNEXT 1)
175 OK STATUS Completed.
    

References: [1]


Simon Josefsson
Last modified: Thu Apr 29 23:16:41 CEST 2004