2016-11-05 4 views
1

Я использую Apache Commons Net, и моя цель - получить список существующих папок Gmail. Я пытаюсь следующий код:Java: IMAP с Apache Commons Net - выберите корневую папку

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

Вы можете использовать

список()

метод для отправки команды списка на сервер Gmail IMAP. Добавить соответствующий

addProtocolCommandListener

в список для ответа на команду. Это должно указывать папки для вашей учетной записи.

команда

IMAP:

A11 список "" "*"

+0

Я уже пытался это сделать, но я не могу понять синтаксис или smth. Я использую следующее: 'imap.connect (server); imap.login (имя пользователя, пароль); imap.list ("", "*"); 'И получение: _I/System.out: AAAB LIST" "* I/System.out: AAAB BAD Не удалось выполнить команду command_ – Rextuz

+0

@rextuz' AAAB LIST "" * отлично держится. Есть что-то еще? Можете ли вы обновить свой вопрос с помощью точного кода, который вы пробовали? – Max

+0

@Max Мне удалось решить мою проблему. Я не использовал синтаксис правильно, спасибо за вашу помощь! – Rextuz

Смежные вопросы