如何使用 commons ImapClient 获取有用的邮件信息?不仅仅是布尔状态,还有真实信息?

How get useful mail info with commons ImapClient? Not just boolean status but real info?

我的专家是

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.3</version>
</dependency>

我的代码如下

IMAPClient client = new IMAPClient();
client.connect("localhost");
for(50K users){
    client.login(login + emailSuffix, password);
    for (int i = 0; i < folders.length; i++) {
        System.out.println(client.select("INOX"); //prints true, it's ok
    }
}

如何使用 apache commons 客户端抓取消息?所有方法 return 布尔值或 void,所以它看起来只是服务器检查库,对吗? 是否有可能以某种方式从 imapclient 获取有用的信息? 我的意思是未读消息的数量,消息 objects (content+headers+sibject) 等.

P.S。 Java Mail api 当然有我需要的所有功能,但是在 50K 循环中使用它非常慢(我在 Java Mail API 上的努力描述在 . Commons 的连接速度更快,但无法提供有用的信息(

终于通过简单的遍历文件系统解决了我的问题(我有 maildir 格式)。 我猜 Java 邮件 API 为 store.connect 中的每个用户创建新的 dovecot 身份验证,而它应该只连接一次(使用 dovecot 身份验证),然后为每个用户登录(使用 dovecot imap-login)。这就是为什么我每次迭代都等待 1 分钟的原因——在 dovecot 配置中,它对于 auth 进程来说是标准空闲的。我不确定,但看起来是这样。

Apache 库运行速度很快,但它只是用于 ping 服务器、检查连接和其他 imap 操作的测试库。它 returns 关于操作的布尔结果,但不是有用的信息(