VC学习资料收集(28):如何在MFC应用程序中使用MAPI32.DLL发送电子邮件
2005-01-07 20:56
1091 查看
如何在MFC应用程序中使用MAPI32.DLL发送电子邮件 |
作者:佚名 文章来源:本站原创 点击数: |
转贴于 华夏黑客同盟 http://www.77169.org [问题] 如何在MFC应用程序中使用MAPI32.DLL发送电子邮件。 [解答] /*加上头文件*/ #include <mapi.h> #include <stdlib.h> /* 定义SendEmail函数的返回值*/ #define SENDEMAIL_SUCCESS 0 //邮件成功发送 #define SENDEMAIL_MAPI_NOT_INSTALLED 1 //没有安装MAPI Server #define SENDEMAIL_MAPILOAD_FAILED 2 //加载 MAPI32.DLL 失败 #define SENDEMAIL_LOGON_FAILED 3 //无法登陆到 MAPI Server 或者 用户取消了登陆框 #define SENDEMAIL_SEND_FAILED 4 //消息发送失败 int SendEmail(const char* Address, const char* Subject, const char* Text) { int iResult; UINT iMapiInstalled; HINSTANCE hMAPIInst; LPMAPILOGON pMAPILogon; LPMAPILOGOFF pMAPILogoff; LPMAPISENDMAIL pMAPISendMail; LHANDLE lhSession; iResult = SENDEMAIL_SUCCESS; iMapiInstalled = GetProfileInt("Mail", "MAPI", 0); if(! iMapiInstalled) return SENDEMAIL_MAPI_NOT_INSTALLED; hMAPIInst = LoadLibrary("MAPI32.DLL"); if(!hMAPIInst) return SENDEMAIL_MAPILOAD_FAILED; pMAPILogon = (LPMAPILOGON) GetProcAddress(hMAPIInst, "MAPILogon"); pMAPILogoff = (LPMAPILOGOFF) GetProcAddress(hMAPIInst, "MAPILogoff"); pMAPISendMail = (LPMAPISENDMAIL) GetProcAddress(hMAPIInst, "MAPISendMail"); if(pMAPILogon(0, NULL, NULL, MAPI_LOGON_UI, 0, &lhSession) != SUCCESS_SUCCESS) { iResult = SENDEMAIL_LOGON_FAILED; } else /* Send the Message */ { ULONG Result; MapiMessage Msg; MapiRecipDesc Recipients[1]; Recipients[0].ulReserved = 0; Recipients[0].ulRecipClass = MAPI_TO; Recipients[0].lpszName = (char*)Address; Recipients[0].lpszAddress = (char*)Address; Recipients[0].ulEIDSize = 0; Recipients[0].lpEntryID = 0; memset(&Msg, 0, sizeof(Msg)); Msg.lpszSubject = (char*)Subject; Msg.lpszNoteText = (char*)Text; Msg.nRecipCount = 1; Msg.lpRecips = Recipients; Result = pMAPISendMail(lhSession, 0, &Msg, 0, 0); if(Result != SUCCESS_SUCCESS) iResult = SENDEMAIL_SEND_FAILED; pMAPILogoff(lhSession, 0, 0, 0); } FreeLibrary(hMAPIInst); return iResult; } 调用方法: rc = SendEmail("SMTP:hangwire@sina.com", "一个小测试","你好,/n其实这很简单。"); |
相关文章推荐
- 如何在MFC应用程序中使用MAPI32.DLL发送电子邮件。
- 如何在MFC应用程序中使用MAPI32.DLL发送电子邮件
- VC学习资料收集(22):如何获得Windows各类系统目录
- VC学习资料收集(13):单独使用CRecordSet
- VC学习资料收集(18):VC ++ 如何取出系统时间
- VC学习资料收集(3):谈新手对CString的使用
- VC学习资料收集(19):使用通用对话框
- VC学习资料收集(23):创建快捷方式
- Maven的学习资料收集--(四)使用Maven构建Web项目-测试
- vc 使用 MAPI 发送邮件 提示 有一个程序正试图以您的名义发送电子邮件
- 如果不使用 SQL Mail,如何在 SQL Server 中发送电子邮件
- VC学习资料收集(25):获取硬盘ID信息及网卡MAC地址的代码
- VC学习资料收集(8):用Visual C++操作INI文件
- Maven的学习资料收集--(三)使用Maven构建Web项目
- Maven的学习资料收集--(五)使用Maven构建Struts2项目
- vc 使用 MAPI 发送邮件 提示 有一个程序正试图以您的名义发送电子邮件
- 查找资料, 学习如何使用命令安装gcc/g++, gdb, vim
- UNIX环境学习笔记------原始套接字-------如何使用man 手册查看原始套接字的相关资料?
- VC学习资料收集(20):随机数(转贴)
- VC学习资料收集(26):截获流经本机网卡的IP数据包