Java:带有 Apache Commons Net 的 IMAP - select 根文件夹

Java: IMAP with Apache Commons Net - select root folder

我正在使用 Apache Commons Net,我的目标是获取现有 Gmail 文件夹的列表。我正在尝试以下代码:

IMAPClient imap = new IMAPSClient();
imap.setDefaultPort(port);
imap.addProtocolCommandListener(new PrintCommandListener(System.out, true));
imap.connect(server);
imap.login(username, password);
imap.list("", "*")

但它给了我:

I/System.out: * OK Gimap ready for requests from 5.18.55.93 fi8mb55620436ldc
I/System.out: AAAA LOGIN *******
I/System.out: * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL- APPENDLIMIT=35651584
I/System.out: AAAA OK rextuz@gmail.com authenticated (Success)
I/System.out: AAAB LIST  *
I/System.out: AAAB BAD Could not parse command

我需要服务器为我提供文件夹列表,因为可能存在自定义或本地化的文件夹。

您可以使用

list()

向gmail imap 服务器发送列表命令的方法。添加适当的

addProtocolCommandListener

列出命令响应。这应该会列出您登录帐户的文件夹。

IMAP 命令:

A11 list "" "*"

实际上这个

I/System.out: AAAB LIST  *

给了我一个替换的想法

imap.list("", "*")

imap.list("\"\"", "\"*\"");

效果很好。