Push Mail (own IMAP-server, not yahoo-mail)
I'm just testing a little bit to get push mail working with my own server. I have courier-imap installed and set the following 3 options in "/etc/courier/imapd"-config:
After that I checked the response of the IMAP-server:
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
It works! IDLE Mode should be no problem. But in case of the iPhone, I found the following:
a OK LOGIN Ok.
a SELECT INBOX
* FLAGS (\Draft \Answered \Flagged \Deleted \Seen \Recent)
* OK [PERMANENTFLAGS (\* \Draft \Answered \Flagged \Deleted \Seen)] Limited
* 70 EXISTS
* 3 RECENT
* OK [UIDVALIDITY 1191429247] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
a OK [READ-WRITE] Ok
+ entering ENHANCED idle mode
So the problem is, that the iPhone will not send an IDLE-command at the moment (at least if you don't use a yahoo-mailaccount). Has anyone checked this out yet or can provide a solution?
The phone supports "push e-mail" which is most likely just IMAP using the idle command (although we'd be happy to be told they mean something else). This works by having the e-mail client, your iPhone in this case, send the idle command to the IMAP server. The client then leaves the IMAP conenction open and will wait until the server receives new mail. At which point the server will notify the client, thorugh the connection that's still open, that e-mail has arrived. The client will then go get the e-mail.
At this time, the only e-mail service that appears to with with push IMAP is Yahoo! The iPhone does not issue an IDLE command when conversing with other IMAP servers.