MAPI发送邮件
这个程序怎么能实现正确发送的功能?里面有错误,编译能通过,还有就是某些地方没设置对吧,谢谢。MAPI发送邮件的讲解也看过,里边的细节还是不会设置。谢谢指点
(FARPROC&) lpfnMAPISendMail = GetProcAddress(hMAPILib,"MAPISendMail");
(FARPROC&) lpfnMAPILogon = GetProcAddress(hMAPILib,"MAPILogon");
(FARPROC&) lpfnMAPILogoff = GetProcAddress(hMAPILib,"MAPILogoff");
(FARPROC&) lpfnMAPIFreeBuffer = GetProcAddress(hMAPILib,"MAPIFreeBuffer");
(FARPROC&) lpfnMAPIResolveName = GetProcAddress(hMAPILib,"MAPIResolveName");
//开始接受信报处理
//(1)生成信报结构指针
pMessage = new(MapiMessage);
//分配内存
memset (pMessage,0,sizeof(MapiMessage));
//设置信报结构的各个域,将ulReserved设置为0
pMessage ->ulReserved = 0;
//设置信息类型指针,可以为空
pMessage ->lpszMessageType = NULL;
//设置信件标题(lpszSubject)
char subject[512] = "信息";
pMessage ->lpszSubject = subject;
//设置信件内容
char text[5000] = "信息";
pMessage ->lpszNoteText = text;
//设置指向这个消息的时间的指针
pMessage ->lpszDateReceived = NULL;
//设置标识消息所属会话线程的串的指针
pMessage ->lpszConversationID = NULL;
//设置flFlags标识
pMessage ->flFlags = MAPI_SENT;
//用一个指向MapiRecipDesc结构的指针设置发送者的信息(lpOriginator),可以设置为NULL
pMessage ->lpOriginator = NULL; //&Originator;
//设置接受者的数目,现在为1
pMessage ->nRecipCount = 1;
//设置接受者的信息(lpRecips)
char receiver[512] = "applelove911@163.com";
// strcpy(receiver, "applelove911@163.com");
char stmprec[512] = "smtp.163.com";
// strcat(stmprec, receiver);
MapiRecipDesc recipient =
{
0, MAPI_TO, receiver, stmprec, 0, NULL
};
pMessage ->lpRecips = &recipient;
//设置附件属性
MapiFileDesc FileInfo;
// char PathName[512] = "";
// char fileName[512] = "";
//设置MapiRecipDesc结构的各个域
FileInfo.ulReserved = 0;
FileInfo.flFlags = 0;
FileInfo.nPosition = sizeof(text)-1;
FileInfo.lpFileType = NULL;
FileInfo.lpszFileName = "00.49.jpg";
FileInfo.lpszPathName = "F:\\opencv\\视频文件\\";
pMessage ->nFileCount = 1;
pMessage ->lpFiles = &FileInfo;
//(2)登录到电子邮件对象,即建立会话
LHANDLE lhSession;
ULONG lResult = lpfnMAPILogon(0, NULL, NULL, 0, 0, &lhSession);
if(lResult != SUCCESS_SUCCESS)
{
AfxMessageBox("没成功的信报");
}
//(4)释放信报结构的内存空间
lpfnMAPIFreeBuffer(pMessage);
//(5)结束会话
lResult = lpfnMAPILogoff(lhSession, 0, 0, 0);
AfxMessageBox("成功发送信报");