我正在使用C中的一个简单的pop3客户端,我遇到了以下问题: 在AUTHORIZATION状态下,服务器永远不会识别我的密码:
Connection successful: +OK GMX POP3 StreamProxy ready user hopatropa@gmx.com +OK May I have your password, please? pass ****** -ERR Username or password incorrect
但是相同的命令序列在telnet中运行良好
+OK GMX POP3 StreamProxy ready user hopatropa@gmx.com +OK May I have your password, please? pass ****** +OK Mailbox locked and ready
我确信我发送的密码没问题。 这是我发送pass命令并收到答案的方式:
sprintf (command, "pass %s\r\n", pass); //pass is the string containing the password printf("%s", command); if (write(sock, command, sizeof(command)) == -1) { fprintf(stderr, "write() error: %d\n", errno); return errno; } if (read(sock, msgbuff, sizeof(msgbuff)) == -1) { fprintf(stderr, "read() error: %d\n", errno); return errno; }
非常感谢任何帮助。
答案 0 :(得分:3)
为什么你使用sizeof(命令)而不是strlen(命令)?