Information Technology Reference
In-Depth Information
Fetch, Push, and IMAP IDLE
Back in what I like to think of as the olden days (let's say, the 20th century, give or take),
email clients always bore the responsibility for checking to see if there were any new mes-
sages on the server waiting to be downloaded. You might click a button to do this manually,
or set your client to check on a recurring schedule (every minute, every half hour, or
whatever). Indeed, this is the way most desktop email programs still work. This pro-
cess—asking whether there are new messages, and downloading any that are there—is called
fetch or pull , emphasizing that the activity is always initiated from the receiving end.
Fetching works just fine, but it involves two kinds of inefficiency:
• If there's no mail waiting, the transaction is wasted. Sure, it's just a handful of
bytes being sent back and forth, but given a server with many users, you're talk-
ing about thousands of such wasted checks each day—this can add up to lots of
bandwidth and processor cycles.
• What if an important message arrives in between scheduled checks? There'd be
no way to know unless you kept checking your mail manually, or increased the
checking frequency to, say, every minute (which takes us back to the first ineffi-
ciency).
So a different way of delivering email emerged: push, in which the server sends incoming
messages (or, in some implementations, a command telling the client to fetch the messages)
to the client as soon as they arrive. When no messages are waiting, no transactions occur.
Now, I'm oversimplifying in that push isn't a specific technology, but rather a generic term,
and there are several ways to accomplish it. iOS 7 supports several mobile-oriented push
technologies (iCloud uses one method, Yahoo uses another, and Exchange ActiveSync uses a
third). On a Mac, Mail uses a different technique, called IMAP IDLE, to accomplish essen-
tially the same thing—but it works only if it is both enabled in Mail (Mail > Preferences >
Accounts > Account Name > Advanced and check Use IDLE Command If the Server Sup-
ports It) and if the IMAP server supports it (iCloud and Gmail do; with other providers, it's
hit-and-miss). Curiously, although Exchange servers can push email to an iOS device or to
Outlook on a Mac, Mail for Mavericks doesn't support push email from Exchange servers.
Tip: To learn more about push and IMAP IDLE, read Michael E. Cohen's TidBITS article
How Apple Mail May Be Anything but IDLE when Pushing Email .
Search WWH ::




Custom Search