OK I see we're engaging in a semantics battle -- I'll play. Those of us who have enjoyed push email using IMAP/IDLE for the last 10 years tend to forget what's actually going on under the hood and simply abbreviate the whole process as IDLE.
IDLE is a mechanism? Technically IDLE is a command sent by the email client to the IMAP server. The IDLE command was implemented in 1997 as a way to allow the server to transmit updates to the client in real time. This essentially alleviates the need for polling. Specifically IDLE was not conceived when the original IMAP RFC was published (1988 I believe) but came later (1997 as I mentioned) in RFC 2177.
As far as the mechanics of the IDLE command, once sent the client will be instantly notified when new messages arrive. Under the hood this consists simply of the message "1 RECENT", or "2 RECENT" if there are two new messages, etc. If memory serves me correctly there is also a message indicating the "number" of the new message(s).
Yes with IMAP IDLE the contents of the message is not pushed to the client. However -- and read carefully now -- the important part is that the client is notified immediatley of new email. Did you follow that? The client is notified immediately when new email arrives.
The beauty of this approach is it's very bandwidth efficient, nothing more than these messages is sent "over the air". If the designers of the IMAP email client choose to they can retrive just header or the whole body upon receipt of a "RECENT" message. Guess what - to the user this looks EXACTLY like push email.
IMAP all by itself does not implement push.
So in a sense this is true however if you've stayed with me this long you should have realized that providing push email to the user is trivial given the capabilities of IMAP/IDLE.
Thunderbird, for example, uses Oracle's push extension
I've found no evidence of this? Do have any supporting information, links etc.? Thunderbird DOES use the IMAP IDLE command. Dig out your favorite ethernet sniffer and have a look if you don't believe me.
the ietf has been developing their own standard for over a decade
Yes I assume you're referring to LEMONADE. In addition to PUSH LEMONADE adds "Forward without download" and "Quick re-synchronisation". But guess what, how do you think they implement push? From the LEMONADE website:
"The IMAP IDLE command, which is a widely implemented standard extension to the core IMAP protocol and contained within the LEMONADE Profile, ensures that the server will inform the client of new messages even when there is no other activity taking place between client and server."
There is no authoratative way to implement push, and it is certainly not part of the IMAP standard.
As far as internet "standards" go it really doesn't get more authoritative than RFC's. I mean authentication is not part of the SMTP (email) standard (RFC822) however RFC 2554 makes it possible. There are probably hundreds of examples of this. Standards and extensions to them evolve over time. So to say that PUSH is certainly not part of "the IMAP standard" is pedantically correct however standards are extensible. But with all that said, not all IMAP servers support this capability, google (gmail), Dovecot, Cyrus, Zimbra all do support it, yahoo does not.