用POP3协议写邮件接收的时候如何收不到内容呐,收到还是乱码

用POP3协议写邮件接收的时候怎么收不到内容呐,收到还是乱码
if (!get_response(AUTHENTIFICATION))//这里出现错误
{
m_wsPOPServer.Close();
return FALSE;
}

m_bConnected = TRUE;

return TRUE;
}

BOOL CPop::get_response(UINT executed_action) //获取响应
{
int nChars = m_wsPOPServer.Receive(response_buf, RESPONSE_BUFFER_SIZE);
if (SOCKET_ERROR == nChars) //response_buf是乱码,每次到这里就return FALSE了
{
  m_sError = _T("Socket Error.");
return FALSE;
}

m_sResponse = response_buf;

m_sResponse = m_sResponse.Left(nChars);

if (m_sResponse.Left(4) == "-ERR")
{
m_sError = CPop::error_table[executed_action];
return FALSE;
}

return TRUE;
}

UINT CPop::GetPort()//获取端口
{
return m_nPort;
}

CString CPop::GetUsername()//获取用户名 
{
return m_sUsername;
}

CString CPop::GetPassword()//获取密码
{
return m_sPassword;
}

CString CPop::GetLastError()//获取最后的错误信息
{
return m_sError;
}

CString CPop::GetServerHostName()//获取服务器主机名
{
return m_sPOPServerHostName;
}


------解决方案--------------------
pop服务器地址对不对,端口好像是110把,然后账号密码对不对
------解决方案--------------------
看下rfc,是不是base64了的数据
------解决方案--------------------
/* Send PASS command */
sprintf_s(sendbuf, "PASS %s\r\n", m_userpwd);
m_sock.Send(sendbuf, (int)strlen(sendbuf), 0);
-------------------------
这是我自己写的POP3部分代码,用WCHAR我觉得可能会有问题,如果服务器是按字节来解析就不对了。另外发送的长度,sizeof(buf),这个buf是否有初始化,要是没有传过去有“乱码”自然无反应,即使有初始化,比如数组大小是10,初始为0,密码是111,你发送sizeof(buf)的数据,对方解析出来可能是1110000000
------解决方案--------------------
response_buf你用TCHAE类型试试
------解决方案--------------------
你提到的都支持SMTP,POP,据我所知,貌似只有雅虎不支持
------解决方案--------------------
和邮件服务器应答交互,使用ASCII码,不要使用UNICODE
------解决方案--------------------
你用ASCII为什么还要用wsprintf,GetPassWord返回是一个char*还是wchar*?UNICODE到ASCII得转换最好不要直接把个指针强制转换,多写点代码安全点
m_wsPOP3Server.Send((LPCSTR)sPass, sizeof(sPass));发送的长度,换成strlen(sPass)试试
------解决方案--------------------
http://blog.csdn.net/agoago_2009/article/details/7265709