Everyone’s got push e-mail fever these days. Intellisync, Blackberry, GoodLink, Seven, Exchange Direct Push, you name it, someone’s got a solution. But, did you know you may already have everything you need to get the job done?

Do you use IMAP to get your mail? Check out the capabilities of the server. Does it support the IMAP IDLE command? Chances are that if your IMAP software is recent, it does. Here’s an example:

# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK Dovecot ready.
001 capability
* CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ 
IDLE CHILDREN NAMESPACE LOGIN-REFERRALS STARTTLS AUTH=PLAIN
001 OK Capability completed.

See that IDLE in the capability string? That means this server supports IMAP IDLE. Ok, great, so what the heck does IDLE do? It’s all about pushing new messages out to clients. Here’s how it works.

  1. Client makes a connection to the server, does it’s login, looks for new messages, all the usual stuff
  2. Client sends the IDLE command to the server
  3. Client leaves the connection open, server waits
  4. New message shows up at the server
  5. Server sends client a response to the IDLE command, informing it of the new message(s) waiting
  6. Client picks up the message(s)

Ok, so the messages themselves aren’t getting pushed to the client, but a notification to pick them up is, so that’s the next best thing. In fact, most of the leading commercial “push” solutions work in pretty much the same way. Client opens a connection, leaves it open, server says, “hey, there’s stuff here for you”, client picks it up.

I’ve been using IDLE on my Nokia N73 for about a week now, and it works very well. The only thing to bear in mind is the IMAP operation interval. The IMAP protocol provides for a 30-minute timeout. Some buggy clients, like Outlook Express will allow the clock to expire, and then sit there, wondering why no new messages ever show up. Nice job Microsoft. So how does one keep a connection active if there’s nothing to do? NOOP. What’s that? NOOP == no operation. That is, do nothing.

What does this leave out? OTA sync of data like calendar and contacts. For business customers, those are the real magic. Email’s great, but what’s the use if you can’t use it to its full potential because you either lack access to your address book, or need to use more software that requires a connection to a computer to sync the other bits of data you need. For just folks, isync, nokia pc suite, activesync, or whatever will fit the bill just fine.

Bottom line? Leave the expensive solutions like Blackberry and friends to business users. This will serve you just fine & dandy..