首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

用MAPISendMail发送邮件返回MAPI_E_FAILURE(2)解决办法

2012-04-16 
用MAPISendMail发送邮件返回MAPI_E_FAILURE(2)void CSendEMailDlg::OnSendMapi(){UpdateData(true)//加载

用MAPISendMail发送邮件返回MAPI_E_FAILURE(2)
void CSendEMailDlg::OnSendMapi() 
{
UpdateData(true);

//加载MAPI32.DLL动态库
HMODULE hMod = LoadLibrary("MAPI32.DLL");

if (hMod == NULL)
{
AfxMessageBox(AFX_IDP_FAILED_MAPI_LOAD);
return;
}

//获取发送邮件的函数地址
ULONG (PASCAL *lpfnSendMail)(ULONG, ULONG, MapiMessage*, FLAGS, ULONG);
(FARPROC&)lpfnSendMail = GetProcAddress(hMod, "MAPISendMail");

if (lpfnSendMail == NULL)
{
AfxMessageBox(AFX_IDP_INVALID_MAPI_DLL);
return;
}

//收件人结构信息
MapiRecipDesc recip;
memset(&recip,0,sizeof(MapiRecipDesc));
recip.lpszAddress= "gaoxiaoweiandy@163.com";
recip.ulRecipClass = MAPI_TO;

//邮件结构信息
MapiMessage message;
memset(&message, 0, sizeof(message));
message.nFileCount= 0;//文件个数
message.lpFiles = NULL;//文件信息
message.nRecipCount = 1;//收件人个数
message.lpRecips = &recip; //收件人
message.lpszSubject= "我的主题"; //主题
message.lpszNoteText= "我的征文";//正文内容

//发送邮件
int nError = lpfnSendMail(0, 0,&message, MAPI_LOGON_UI|MAPI_DIALOG, 0);


  //在这里nError总是为2:MAPI_E_FAILUREif (nError != SUCCESS_SUCCESS && nError != MAPI_USER_ABORT 
&& nError != MAPI_E_LOGIN_FAILURE)
{
AfxMessageBox(AFX_IDP_FAILED_MAPI_SEND);
}


FreeLibrary(hMod);
}

[解决办法]
请问你是如何解决的?我也遇到同样的问题了

热点排行