、、、、、、、、、、、、
// 界尾
strTmp ="--" ;
strTmp +=BOUNDARY ;
strTmp +="--/r/n./r/n" ;
if (send (m_SOCKET ,(CStringA )strTmp ,strTmp .GetLength (),0) == SOCKET_ERROR )
{
ReleaseSocket ();
AfxMessageBox (_T ("error9" ));
return false ;
}
if (!CheckResponse ("250" ))
{
AfxMessageBox (_T ("error" ));
return false ;
}
// 退出
strTmp ="QUIT/r/n" ;
if (send (m_SOCKET ,/*"QUIT/r/n"*/ (CStringA )strTmp ,strTmp .GetLength (),0) == SOCKET_ERROR )
{
ReleaseSocket ();
return false ;
}
if (!CheckResponse ("221" ))
{
return false ;
}
ReleaseSocket ();
return true ;
}
BOOL CMail ::CheckResponse (const char * RecvCode )
{
try
{
char Buf [1024]={0};
if (recv (m_SOCKET ,Buf ,1024,0) == SOCKET_ERROR )
{
return false ;
}
return RecvCode [0] == Buf [0] && /
RecvCode [1] == Buf [1] && /
RecvCode [2] == Buf [2] ? true : false ;
}
catch (...)
{
return false ;
}
}
我写了一个邮件发送程序在VC6.0上面能够成功运行,现在移植到VS2008上面要使用UNICODE编码,跟踪后一直运行到 // 界尾
都是正常的能够收到250消息,但是发送 // 退出 消息时收不到 221 回应我用抓包工具找到服务器发回来的211bye但是为什么程序
还是出问题呢,是不是最后校验的时候出了问题了还是怎么回事,希望高手能够指点,谢谢!