java - Imap gmail 在 MAC 上使用 java SSLSocket 不响应

标签 java macos imap gmail-imap

当我在 Windows 上执行以下代码时,它运行良好,但 Mac 电脑却运行不佳。

//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);
    }

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

  • OK Gimap ready for requests from 42.118.56.137 c14mb33681806itd

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

Noted: 2 step verification is turn off.
Insecured app is enable.

最佳答案

PrintWriter.println 使用特定于平台的行结束符,这在 Windows 和 Mac 之间有所不同。 IMAP 要求将 \r\n (不是“\n”)作为行尾发送。您应该使用某种方法来控制行尾,例如:

output.print("a001 LOGIN uName pWord\r\n")

关于java - Imap gmail 在 MAC 上使用 java SSLSocket 不响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824864/

相关文章:

php - 通过 PHP IMAP 连接到 Exchange 服务器,Exchange 服务器对 UNSEEN 电子邮件使用什么标志?

java - 如何从 Java 调用/使用 MRI Ruby?

java - 如何根据构造函数值获取枚举实例并进行一般转换?

macos - 如何在整个屏幕上找到 NSView 的位置?

cocoa - 应用程序加载器无法选择我的 Mac 应用程序的 zip 文件

email - 如何 "Reply to this email to comment"喜欢 Facebook?

java - 添加 spring-batch 依赖项时 spring-repository save 不起作用?

java - 解析和格式化日期

performance - 使用 CSS3 box-shadow 属性滚动滞后?

python - Imap 搜索条件 - imaplib (python)