because the nokia did IMAP IDLE (not real push) and the iPhone does not.
Define "push".
I take the definition that "push" means that events on a server can trigger a data transfer without being told to by the client. Presuming that you keep the TCP/IP socket open, this is exactly what happens with an IMAP IDLE command.
Of course, there are many drawbacks to the IMAP IDLE command. These mainly revolve around having to keep the data connection active constantly, which is a problem because:
- it eats up battery life.
- it is difficult when 3G coverage is spotty.
- it is impossible to maintain an active EDGE data connection while sending/receiving calls.
If you look up the RFC dealing with push extensions to IMAP, you'll find that the IDLE command is considered a valid mechanism (in fact it's the
only mandatory mechanism) that may be used to implement "real" push functionality. It is ideally suited to situations such as stationary computers where battery concerns are less relevant and data connections typically really are always on.
Other mechanisms for realizing push email are all considered optional, and they include using an out-of-channel mechanism such as SMS messages or GPRS packets routed to the device's registered phone number to send notification of server events. This allows the power-hungry data connection to be severed, and the server will still be able to send notifications using that alternative, always-on, medium.
When a server event happens, the specially formatted message is recognized by the receiving phone, and intercepted before being displayed like other SMS messages would be; instead it is used to trigger an automatic email download. This has been conjectured to be the mechanism that is used in the iPhone, and in compatible email services. (Apparently, AT&T must recognize these specially formatted SMS or GPRS messages, and price them differently than they would "ordinary" SMS messages.)