jodd mail EmailFilter не работает - PullRequest
0 голосов
/ 26 июня 2018

Я использую

receiveEmailAndMarkSeen(EmailFilter.filter().flag(Flags.Flag.SEEN,true));

чтобы отфильтровать сообщение, которое я не читаю, но функция возвращает пустой массив. Если я установлю false, он вернет все сообщение.

Я проверяю много раз, я не знаю, что не так

Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 26 июня 2018

Это может зависеть от целевого сервера. Вы используете IMAP или POP сервер? IMAP - это тот, который обычно лучше работает в вашем случае использования.

Вот пример, который работал для меня:

    ImapServer imapServer = MailServer.create()
        .host("imap.gmail.com")
        .ssl(true)
        .auth("user", "password")
        .buildImapMailServer();

    ReceiveMailSession session = imapServer.createSession();
    session.open();

    ReceivedEmail[] mails =
            session.receiveEmailAndMarkSeen(
            EmailFilter.filter().flag(Flags.Flag.SEEN, false));

    Arrays.stream(mails).map(CommonEmail::subject).forEach(System.out::println);

    session.close();

Мой почтовый ящик:

enter image description here

Вывод программы:

enter image description here

p.s. Попробуйте загрузить все электронные письма и проверьте Flag полученных писем. Также используйте IMAP.

...