我用smtp协议做了个邮件发送工具,包含服务器验证过程。遇到一个问题发网易邮箱能正常发送可是发sohu,tom身份验证也通过了,可是在发送邮件结束指示符"\r\n.\r\n"时却返回错误,不知何故,请高手指点一二!!!//发送邮件结束指示符
char* pszEOM = "\r\n.\r\n";
nCmdLength = strlen(pszEOM);
if (!m_SMTP.Send(pszEOM, nCmdLength))
{
TRACE(_T("Failed in call to send end of message indicator, GetLastError returns: %d\n"), GetLastError());
return FALSE;
}
// Sleep(2000);
//检查结束符响应
if (!ReadCommandResponse(250)) //错误处 {
SetLastError(ERROR_BAD_COMMAND);
TRACE(_T("An unexpected end of message response was received\n"));
return FALSE;
}

解决方案 »

  1.   

    你发送的是MIME格式吗?
    一般来讲,data段发送完毕,服务器要进行简单判断,可能要在这个时候判断是否是垃圾邮件!
    sohu,tom的好像必须使用MIME格式,有时候,一般格式也能发送,但是,返回的状态码有所不同!
    我使用tom发送过一回,结果,服务器给我发了一封警告信!是不是现在已经禁止了也说不定啊!
    我估计是返回的状态码不是250的原因!
      

  2.   

    你把data部分改为MIME各式的试一下,如果可以发送,就说明是邮件格式的问题!