aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rwxr-xr-xfetchmailconf8
-rw-r--r--imap.c10
3 files changed, 11 insertions, 9 deletions
diff --git a/NEWS b/NEWS
index 23c7633b..b39ea731 100644
--- a/NEWS
+++ b/NEWS
@@ -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:
diff --git a/imap.c b/imap.c
index 9926dad2..6f6645ce 100644
--- a/imap.c
+++ b/imap.c
@@ -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)