Библиотека для IMAP IDLE

Я ищу библиотеку Java, которая помогает мне использовать IMAP и предпочтительно IDLE.

Мне нужно написать приложение Java, которое уведомляется и получает новую электронную почту, используя SSL. Приложение проверит почтовый ящик учетной записи, размещенной на hMailServer.

До сих пор я смотрел на:

Apache Commons Imap, но, похоже, он не реализует IDLE.

JavaPushMail, но он недостаточно документирован (возможно, я смогу разобраться, но я не уверен, что мои преемники будут так же довольны).

Javamail, их IMAPFolder кажется хорошим выбором, но у меня мало времени, и написание стабильной библиотеки для этого займет время.

Chilkatsoft - это библиотека за 199 долларов, она немного дорогая (я знаю, бесплатный и хороший надежный код всегда легко найти:) Плюс, я не уверен, что он обрабатывает IDLE.

Я мог бы пойти на решение, которое опрашивает входящие, если оно задокументировано и стабильно.

Я был бы признателен за пример кода, библиотеку или толчок в правильном направлении.

Извините за все "я" и заранее спасибо.

3 ответа

Решение

Я пошел дальше и использовал Javamail. Просто подумайте, что это странно, что для него еще не написана достойная оболочка / клиент. Ну хорошо, не может иметь все это. Спасибо за ответ, Конор Шерман.

Я не работал ни с одной из упомянутых вами библиотек, кроме Javamail, но могу за это поручиться. Мне пришлось написать приложение, которое опрашивает сервер обмена и анализирует всю новую почту во входящих. Вот фрагмент кода, используемого в этом проекте. Я сделал все опросы в приложении, поэтому я не смотрел на push-уведомления с сервера или что-то еще. Я знаю, что это не совсем то, о чем вы просили, но я надеюсь, что это шаг в правильном направлении.

import java.util.Properties;
import javax.mail.*
import javax.mail.search.FlagTerm;


public class Driver {
    public static void main(String[] args){
        // Create properties (disable security checks on server)
        Properties props = new Properties();
        props.put("mail.imaps.ssl.checkserveridentity", "false");
        props.put("mail.imaps.ssl.trust", "*");

        // Get session
        Session session = Session.getDefaultInstance(props, null);

        try{
            // Get the store
            Store store = session.getStore("imaps");
            store.connect("servername", "username", "password");

            //connection configuration
            Folder folder = store.getFolder("INBOX");
            folder.open(Folder.READ_WRITE);

            //get all unread messages in the inbox
            FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); 
            Message[] messages = folder.search(ft);

            for (int i = messages.length -1; i>=0; i--) {
                messages[i].setFlag(Flags.Flag.SEEN, true);
            }
            // Close connection 
            folder.close(false);
            store.close();
        }
        catch(Exception e){
        }
    }
}

Я не использовал его сам, но эта библиотека выглядит хорошо:

https://github.com/MailCore/mailcore2

MailCore 2 предоставляет простой и асинхронный API для работы с почтовыми протоколами IMAP, POP и SMTP. API был переработан с нуля.

Другие вопросы по тегам