0
我正在寫imap郵件檢查器。 我有這樣的事情:如何發送IMAP - 使用java和端口143的命令
tcpSocket = new Socket();
tcpSocket.connect(new InetSocketAddress(Config.HOST, 143));
...
// greeting message from server
String answer = socketBufferedReader.readLine();
// try to login
socketBufferedWriter.write("A001 login my_login password\n");
socketBufferedWriter.flush();
// get answer
answer = socketBufferedReader.readLine();
在最後一個代碼的路線PROGRAMM被阻止。當超時通過時,我會得到答案「* BYE autologout閒置太久」。
我不明白什麼是錯的。我想我使用錯誤的格式的命令,但我不知道
爲什麼不使用像[commons-net](http://commons.apache.org/proper/commons-net/)這樣的現有庫而不是從頭開始編寫某些東西? – gma
我注意到你應該用'\ n'而不是'\ r \ n'來終止你的命令,但這可能是也可能不是失敗的原因。也許您需要在發送命令之前監聽服務器的歡迎橫幅(並使用它來驗證您要使用的登錄類型是否受支持)?此外,您應該實施STARTTLS,否則您將以明文發送登錄憑證。最後,爲了正確完成所有這些,我必須迴應@ gma建議使用現有的庫。 – Celada