По умолчанию при использовании IMAP клиент будет подключаться, посмотреть, есть ли новые сообщения, есть ли их обработка и отключение, а если нет, то просто отключение.Затем клиент попытается снова через 10 минут.Однако в IMAP есть команда IDLE.В основном это означает, что вы хотите оставить соединение открытым и получать уведомления при каждом появлении нового сообщения.Команда определена в RFC2177 .
Команда довольно проста (от RFC2177 ):
C: A002 IDLE
S: + idling
...time passes; new mail arrives...
S: * 4 EXISTS
C: DONE
Я не уверен,Любой из Java-клиентов поддерживает это, но в противном случае это было бы довольно тривиально.Вам также необходимо добавить что-то, чтобы проверить, поддерживает ли сервер команду IDLE (используя возможности), а также восстановить соединение в случае сбоя.
Стоит также отметить, что существуют такие системы, как http://cloudmailin.com, которые позволяют вам получать электронную почту в виде сообщения http.Это дает вам преимущество «живого» времени отклика без необходимости запрашивать электронную почту вообще.