2016-11-05 101 views
1

我使用Apache Commons Net,我的目標是獲取現有Gmail文件夾的列表。我想下面的代碼:Java:使用Apache Commons Net的IMAP - 選擇根文件夾

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 [email protected] authenticated (Success) 
I/System.out: AAAB LIST * 
I/System.out: AAAB BAD Could not parse command 

我需要的服務器爲我提供的文件夾列表,因爲可能存在定製或局部的。

回答

0

其實這

I/System.out: AAAB LIST * 

給了我一個想法來代替

imap.list("", "*") 

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

哪個工作像魅力。

1

您可以使用

列表()

方法發送list命令到Gmail的IMAP服務器。添加適當

addProtocolCommandListener

列出該命令的響應。這應該列出您登錄帳戶的文件夾。

IMAP命令:

A11名單 「」, 「*」

+0

我正在嘗試這個,但我不明白的語法或水手。我正在使用以下內容:'imap.connect(server); imap.login(用戶名,密碼);我的系統:AABAB BAD無法解析命令_ – Rextuz

+0

@rextuz「AAAB LIST」「* *」是完全cóuulent。還有別的嗎?你能用你試過的確切代碼更新你的問題嗎? – Max

+0

@Max我設法解決了我的問題。我沒有使用正確的語法,感謝您的幫助! – Rextuz