diff options
-rw-r--r-- | NEWS | 2 | ||||
-rwxr-xr-x | fetchmailconf | 8 | ||||
-rw-r--r-- | imap.c | 10 |
3 files changed, 11 insertions, 9 deletions
@@ -2,6 +2,8 @@ (The `lines' figures total .c, .h, .l, and .y files under version control.) +* Back out the InterChange workaround, it breaks operation with M$ Exchange. + fetchmail-5.3.4 (Wed Mar 22 15:55:51 EST 2000), 18819 lines: * Added FAQ item on performance under load. diff --git a/fetchmailconf b/fetchmailconf index 585f2235..f61f1111 100755 --- a/fetchmailconf +++ b/fetchmailconf @@ -1261,10 +1261,10 @@ same messages will be downloaded over and over. warnings = warnings + """ The InterChange IMAP server screws up on mail with attachments. It doesn't fetch them if you give it a BODY[TEXT] request, though it -does if you request RFC822.TEXT (according to the IMAP RFCs and their -maintainer these should be equivalent). We have worked around this -bug, but suspect InterChange is likely to be broken in other ways. -You should get rid of it. +does if you request RFC822.TEXT. According to the IMAP RFCs and their +maintainer these should be equivalent -- and we can't drop the +BODY[TEXT] form because M$ Exchange (quite legally under RFC2062) +rejects it. """ if string.find(greetline, "Imail") > 0: @@ -1262,20 +1262,20 @@ static int imap_fetch_body(int sock, struct query *ctl, int number, int *lenp) * The server is InterChange, and the fool who implemented this * misfeature ought to be strung up by his thumbs. * - * To work around this, we disable use of the 4rev1 form. It's - * all too easy to imagine other clever idiots deciding that the - * message body doesn't include attachments. + * When I tried working around this by disable use of the 4rev1 form, + * I found that doing this breaks operation with M$ Exchange. + * Annoyingly enough, Exchange's refusal to cope is technically legal + * under RFC2062. Trust Microsoft, the Great Enemy of interoperability + * standards, to find a way to make standards compliance irritating.... */ switch (imap_version) { case IMAP4rev1: /* RFC 2060 */ -#ifdef __UNUSED__ if (!ctl->keep) gen_send(sock, "FETCH %d BODY.PEEK[TEXT]", number); else gen_send(sock, "FETCH %d BODY[TEXT]", number); break; -#endif /* UNUSED -- FALL THROGH */ case IMAP4: /* RFC 1730 */ if (!ctl->keep) |