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