gmail imap плохая неизвестная команда в java - PullRequest
0 голосов
/ 19 октября 2011

Я пытаюсь получить доступ к своему входящему почтовому ящику Gmail с помощью Java, используя сокет (не Java Java API).Я успешно установил соединение, но команда выбора входящих сообщений не распознана.вот мой коди вывод я получаю.

    SSLSocketFactory sslsocketfactory = HttpsURLConnection.getDefaultSSLSocketFactory();
    SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("imap.gmail.com", 993);

    BufferedReader sin = new BufferedReader(new InputStreamReader(sslsocket.getInputStream()));
    PrintWriter output = new PrintWriter(new OutputStreamWriter(sslsocket.getOutputStream()));

String line;
 output.println("A004 LOGIN my-mail-here my-pass-here");
    output.println("A005 SELECT [GMAIL]/myinbox");
    output.println("A006 LOGOUT");
    output.flush();
    while ((line = sin.readLine()) != null)
    System.out.println(line);

и вот вывод, который я получаю:

* OK Gimap ready for requests from 78.185.154.27 o19if1214052bkq.44
A005 BAD Unknown command o19if1214052bkq.44
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE
A004 OK my-mail@gmail.com my-name my-surname authenticated (Success)

в чем может быть проблема?Логин работает, но выбор не работает.Я попробовал starttls, это тоже не работает.

1 Ответ

1 голос
/ 19 октября 2011

Потому что вы делаете это неправильно :)

005 SELECT myinbox

сделает то, что вы пытаетесь сделать.

Отличный способ проверить подобные вещи с помощью openssl

openssl s_client -crlf -connect imap.gmail.com:993

вот пример использования моей учетной записи gmail. Мои Черновики перечислены как:

* СПИСОК (\ HasChildren \ HasNoChildren) "/" "[Gmail] / Черновики"

003 select Drafts
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen $MDNSent Junk $Forwarded NonJunk)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen $MDNSent Junk $Forwarded NonJunk \*)] Flags permitted.
* OK [UIDVALIDITY 620224742] UIDs valid.
* 0 EXISTS
* 0 RECENT
* OK [UIDNEXT 25] Predicted next UID.
003 OK [READ-WRITE] Drafts selected. (Success)

При этом, как мне кажется, происходит то, что сервер imap работает асинхронно, и вы не ждете, пока он аутентифицирует вас перед отправкой команды select - вот почему ошибка возвращается до того, как в результате входа в ваш выход * * 1 021

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...