在C中编写POP3客户端

时间:2010-01-30 14:49:03

标签: c email client pop3

我正在使用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;
    }

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

为什么你使用sizeof(命令)而不是strlen(命令)?