Поддерживает ли JavaMail уведомление о новых сообщениях через push-сервер?
Если да, то где документация для этого? Если нет, есть ли библиотека, которая может это сделать?
Поддерживает ли JavaMail уведомление о новых сообщениях через push-сервер?
Если да, то где документация для этого? Если нет, есть ли библиотека, которая может это сделать?
Вы должны использовать функцию IMAPFolder idle
, чтобы выпустить команду idle на сервер. Затем будут прослушиваться события, такие как новая почта или удаленная почта. (См. Спецификацию IMAP, чтобы увидеть, как выглядят сообщения). И вы должны использовать MessageCountListener
для выполнения кода при изменении количества писем в почтовом ящике.
Функция простоя IMAP точно предназначена для имитации функциональности "push".
http://java.sun.com/products/javamail/javadocs/javax/mail/event/MessageCountListener.html
http://java.sun.com/products/javamail/javadocs/com/sun/mail/imap/IMAPFolder.html
Извините, я не публиковал код, показывающий, как это используется. Я не хотел тратить свое время, так как в Интернете есть много доступных примеров, если вы ищете этот материал.
Но будьте предупреждены, этот метод не будет работать для нескольких учетных записей IMAP, поскольку блоки команды idle. Если вы не хотите, чтобы все они были на разных потоках (плохая идея).
Событие "Сохранение" прослушивает уведомления, выпущенные вашим бэкэнд-магазином:
http://java.sun.com/products/javamail/javadocs/javax/mail/event/StoreEvent.html
Но, по моему опыту, java-почтовые документы настолько тонкие, что лучший способ узнать, что происходит, - это самостоятельно отлаживать процесс.
Это отличный многопользовательский ресурс; Часто задаваемые вопросы по JavaMail: