Это может зависеть от целевого сервера. Вы используете 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();
Мой почтовый ящик:
Вывод программы:
p.s. Попробуйте загрузить все электронные письма и проверьте Flag
полученных писем. Также используйте IMAP.