Imap gmail没有在MAC上使用java SSLSocket进行响应

时间:2016-04-24 15:06:15

标签: java macos imap gmail-imap

当我在窗口下面执行代码时,它运行良好,但Mac pc没有。

//declaration is removed;
    socketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
        socket = (SSLSocket)socketFactory.createSocket("imap.gmail.com", 993);
        in = new DataInputStream(socket.getInputStream());
        output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));

    BufferedReader sin = new BufferedReader(new InputStreamReader(in));
    String line;
    output.println("a001 LOGIN uName pWord");//assume that uName pWord is write
    output.flush();// commit query immediately
    while ((line = sin.readLine()) != null) {
        System.out.println(line);
    }

打开套接字时正常返回的消息

  
      
  • 确定Gimap已准备好接受来自42.118.56.137的请求c14mb33681806itd
  •   

但是当我执行Login语句时 它挂起连接没有任何响应,永远不会超时。 我试图使用非安全但它没有意义。

  

注意:2步验证已关闭   启用了不安全的应用程序。

1 个答案:

答案 0 :(得分:1)

PrintWriter.println使用特定于平台的行尾终结符,它在windows和mac之间有所不同。 IMAP要求vmstat t y (不是' \ n')作为行尾发送。您应该使用一些控制行尾的方法,例如:

\r\n