Yahoo: Your buggy IMAP server affects iPhone too; thanks for playing though.

I was happy to see Microsoft’s admission regarding Yahoo’s buggy IMAP server, and even more so with Yahoo’s apology. But today, Yahoo issued another statement pointing a finger at Microsoft for their allegedly unique implementation of IMAP on Windows Phone devices. Yahoo’s statement, with my emphasis, follows:

Yahoo! Mail is widely available on tens of millions of mobile phones, including those running on Apple iOS, Android, Nokia Symbian, and RIM. The issue on the Windows Phones is specific to how Microsoft chose to implement IMAP for Yahoo! Mail and does not impact Yahoo! Mail on these other mobile devices. Yahoo! has offered to provide Microsoft a near-term solution for the implementation they chose, and is encouraging Microsoft to change to a standard way of integrating with Yahoo! Mail, which would result in a permanent fix.

Does not impact other devices? REALLY now? Help me here, Yahoo. Perhaps I’m not using the same server you are. I managed to convince Matthew Perovic into bouncing off my IMAP script, pulling mail from my test inbox. His iPhone fetched my test inbox with the following command:

FETCH 181 (INTERNALDATE UID RFC822.SIZE FLAGS BODY.PEEK[HEADER.FIELDS (date subject from content-type to cc bcc message-id in-reply-to references)])

This roughly translates to:

Fetch me message 181, without opening it, hold it to your head and magically reveal the following: Internal Date, UID, Size, Flags, Date, Subject, From, Content-Type, To, CC, BCC, Message-ID, In-Reply-To, and References.

According to INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1 (RFC 3501):

The subset returned by HEADER.FIELDS contains only those header fields with a field-name that matches one of the names in the list; similarly, the subset returned by HEADER.FIELDS.NOT contains only the header fields with a non-matching field-name. The field-matching is case-insensitive but otherwise exact.

That means I should only get what I asked for, right? Not on Yahoo servers. Here’s Yahoo reply:

* FETCH (FLAGS (\Seen) INTERNALDATE "31-Jan-2011 19:23:36 +0000" RFC822.SIZE 2186 UID 181 BODY[HEADER.FIELDS (DATE SUBJECT FROM CONTENT-TYPE TO CC BCC MESSAGE-ID IN-REPLY-TO REFERENCES)] {1252} 
X-YMAIL-UMID: 1_21158_AH1TimIAAPKnTUcMOAgAwBDut3M 
Delivered-To: rafael@withinwindows.com 
Received: by 10.220.187.133 with SMTP id cw5cs13081vcb; 
        Fri, 14 Jan 2011 06:13:01 -0800 (PST) 
Received: by 10.236.103.11 with SMTP id e11mr1637003yhg.43.1295014381119; 
        Fri, 14 Jan 2011 06:13:01 -0800 (PST) 
Received: from otenet.gr (ppp-94-66-151-64.home.otenet.gr [94.66.151.64]) 
        by mx.google.com with ESMTP id 25si2587174yhj.182.2011.01.14.06.13.00; 
        Fri, 14 Jan 2011 06:13:01 -0800 (PST) 
Received-SPF: pass (google.com: best guess record for domain of ShaunaHigginson3498@otenet.gr designates 94.66.151.64 as permitted sender) client-ip=94.66.151.64; 
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of ShaunaHigginson3498@otenet.gr designates 94.66.151.64 as permitted sender) smtp.mail=ShaunaHigginson3498@otenet.gr
Date: Fri, 14 Jan 2011 06:13:01 -0800 (PST) 
Message-Id: <4d3059ed.a504ec0a.3af2.ffffd3acSMTPIN_ADDED@mx.google.com> 
From: "Administrator, Julia" < shaunahigginson3498@OTENET.GR > 
To: rafael@withinwindows.com 
Subject: Marina 21y.o, I am on-line now, let`s chat? 
Mime-Version: 1.0 
Content-type: text/html; charset="utf-8" 
Content-Transfer-Encoding: 7bit

So much for being a Windows Phone specific problem. Note that we have extra fields in our reply, specifically X-YMAIL-UMID, Delivered-To, Received, Received-SPF, Authentication-Results, Mime-Version, and Content-Transfer-Encoding.

What about Android? Well, Android is the dumbest of the gang; the problem doesn’t arise at poll. I’m sure if I sift through a full conversation dump, I’d find something – but I don’t have time for that. If you were wondering, though, Android issues the following command:

UID FETCH 181 (UID FLAGS)

Yahoo returns:

* FETCH (FLAGS (\Seen) UID 181)

At least they got that one right. <g>

Update (3:16PM MST): This has nothing to do with PUSH email.