来自CSMTPConnection :: SendSimple的错误997(ERROR_IO_PENDING)(“正在进行重叠的I / O操作”

时间:2009-07-21 16:00:16

标签: visual-c++ smtp atl

CSMTPConnection是atlsmtpconnection.h中的ATL(VC ++)类。 代码:

static _TCHAR mailserver[ 256 ];
static _TCHAR mailsender[ 256 ];
static _TCHAR mailrecips[ 256 ];
static _TCHAR subject[ 256 ];
static _TCHAR msg[ 256 ];
static DWORD mailtimeout=10000;
static CSMTPConnection con;
...
if (con.Connect( mailserver, mailtimeout )){
  if (con.SendSimple( mailrecips, mailsender, subject, msg)) {
    // it worked
  } else {
    // it failed
  }
} else {
  // it failed
}

使用VS2005构建。 部署在Windows 2008和Windows 2003服务器混合的服务中(大约10个)。 除了在其中一个Windows 2003服务器上工作,其中SendSimple方法(或者它可能是连接)总是产生错误997 - 正在进行重叠的I / O操作。 我想我可以继续调用SendSimple循环,直到我没有收到错误,但这会有效吗?

1 个答案:

答案 0 :(得分:0)

也许你应该等到Connected成员函数在调用SendSimple()之前返回TRUE?听起来你正试图在完全建立与邮件服务器的连接之前发送邮件。