Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的gmail imap错误未知命令_Java_Email_Sockets_Gmail_Imap - Fatal编程技术网

java中的gmail imap错误未知命令

java中的gmail imap错误未知命令,java,email,sockets,gmail,imap,Java,Email,Sockets,Gmail,Imap,我正在尝试使用套接字(而不是java邮件api)用java访问我的gmail收件箱。 我已成功建立连接,但无法识别“选择收件箱”命令。这是我的密码。以及我得到的输出 SSLSocketFactory sslsocketfactory = HttpsURLConnection.getDefaultSSLSocketFactory(); SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("imap.gmai

我正在尝试使用套接字(而不是java邮件api)用java访问我的gmail收件箱。 我已成功建立连接,但无法识别“选择收件箱”命令。这是我的密码。以及我得到的输出

    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,它也不起作用

因为你做错了:)

我会做你想做的事

测试这些东西的一个好方法是使用openssl

openssl s_客户端-crlf-connect imap.gmail.com:993

下面是一个使用我的gmail帐户的例子。我的草稿如下:

*列表(\HasChildren\HasNoChildren)“/”[Gmail]/Drafts”


也就是说,我认为正在发生的是imap服务器是异步的,在发送select命令之前,您没有等待它对您进行身份验证-这就是为什么在您的输出中出现登录结果之前返回错误的原因

。。。你知道我在想什么;imap服务器是异步的,您不必等待它在发送
select
命令之前对您进行身份验证—这就是为什么在输出中的登录结果出现之前返回错误的原因。同样,您可以通过直接连接到imap服务器来测试实际命令。我可以连接我的帐户,但在登录命令后,select命令给了我一个错误的命令这里是我键入的和我得到的:openssl s_客户端-crlf-connect imap.gmail.com:993服务器:这里和结尾有很多stuf OK Gimap准备好从我的ip请求这里我:A001登录我的电子邮件我的密码服务器:错误的无效标记O23123BKG.1功能IMAP4rev1取消选择空闲命名空间配额ID XLISTCHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ADD01确定我的电子邮件我的名字我的姓氏已验证(成功)我:A002选择收件箱服务器:错误无法解析命令确定事情是异步imap服务器。thread.sleep(2000)在登录我的帐户后运行良好
005 SELECT myinbox
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)