Some IMAP providers support Push, some don't. You don't mention if it
is the same account that stopped using Push and now uses polling, or if
it is different IMAP providers where one support Push and the other does
not. Not many IMAP providers support Push-IMAP (P-IMAP), but more
support IMAP IDLE (RFC 2177). In fact, IMAP IDLE is required for P-IMAP
to work.
https://en.wikipedia.org/wiki/IMAP_IDLE
https://en.wikipedia.org/wiki/Push-IMAP
To see if an e-mail provider support IMAP IDLE or its superset of
Push-IMAP, connect to the server in a command shell.
telnet <hostname> <port>
Their site will say which port to use. Once connected, the server will
return a keyword list showing which features it supports.
For example, I used:
telnet
mail.comcast.net 143
and the server returned:
* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
LITERAL+ STARTTLS LOGINDISABLED] Dovecot ready.
Enter the quit command to exit the telnet program. They're using the
Devot server program. "OK" is the status (i.e., you connected to their
server, and the server acknowledged). Notice "IDLE" is listed as a
supported IMAP protocol (it is listed as a capability). So, I know
their server supports IMAP IDLE, but don't know if it also supports
P-IMAP; however, I don't know if an IMAP server's keywords included more
than "IDLE" (i.e., I don't know that they identify "PIMAP" as a
keyword). What does your server report?
IMAP IDLE is not strictly a Push model as it still requires an active
IMAP connection between client and server and only then can the server
notify the client there is a newly arrived message. If the
client-server connection is lost, the server can no longer identify a
new message is available (which the client must still retrieve, so it is
still a Pull instead of a Push). Upon losing the IMAP session, it is up
to the client to reestablish an IMAP session to renew the ability to get
notified of new messages upon which the client then retrieves them.
Servers may expire inactive sessions (no transactions with client), the
server logs off the client, and so clients should expect to reestablish
the IMAP session, like after 29 minutes.
Push IMAP isn't that standardized yet. Yahoo Mail uses its own P-IMAP
scheme uses a special (custom) UDP message to trigger an e-mail sync at
the client while Apple's iCloud uses a variant of XMPP (a chat
protocol). Gmail uses Google's Cloud Messaging. What is P-IMAP is a
mess. You probably meant IMAP IDLE.
If your connection (and hence the e-mail session) between your client
and server gets interrupted, IMAP IDLE ceases to work until your client
reestablishes its next IMAP session, and that may not be until it is
scheduled to perform the next e-mail poll. If you're not getting new
messages within an expiration interval, the persistent connection is
considered abusive. You don't have any new messages to retrieve for an
excessively long time. You didn't mention your volume or reception rate
of e-mails to determine if you qualify for a persistent connection for
IDLE to work.