0
我想通過使用套接字(而不是Java郵件API)訪問我的Gmail與Gmail的收件箱。 我成功建立連接,但選擇收件箱命令無法識別。這是我的代碼。和我得到的輸出。gmail imap bad unknown命令在java
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 [email protected] my-name my-surname authenticated (Success)
可能是什麼問題?登錄工作但選擇不起作用。我試過starttls,它也不起作用。
samet output.println錯誤(「A005 SELECT INBOX「); – nazgulll
其實......你知道我在想什麼, imap服務器是異步的,並且在發送'select'命令之前,您並不等待它對您進行身份驗證 - 這就是爲什麼在輸出登錄結果之前錯誤會再次出現。再次,您可以通過直接連接到imap服務器來測試您的實際命令。 –
正如你所說我donwloaded openssl並連接你給我的參數。我可以連接我的帳戶,但登錄命令後,再次選擇命令給我一個錯誤的命令錯誤 – nazgulll