向outlook中添加邮件?
我想编程实现向outlook的收件箱,发件箱等添加一封邮件,找了好久也没有找到这方面的资料
那位大虾知道请指点我一下,谢谢!
问题点数:50、回复次数:5Top
1 楼moloto2004()回复于 2006-03-20 16:40:20 得分 50
Search MAPI ,you'll find itTop
2 楼kun_c_com()回复于 2006-03-20 16:52:40 得分 0
_MailItemPtr pNewMail;
MAPIFolderPtr pInbox;
_ItemsPtr pInboxItems;
_NameSpacePtr pNameSpace;
pNameSpace1 = pApp->GetNamespace(L"MAPI");
pInbox = pNameSpace->GetDefaultFolder(olFolderInbox);
pInboxItems = pInbox->Items;
pNewMail = pInboxItems->Add();
pNewMail->Subject = "Save Inbox";
pNewMail->SaveSentMessageFolder = pInbox;
pNewMail->Save();
pNameSpace1->Logoff();
我上面这么做为什么不对啊,每次都保存到了草稿箱?Top
3 楼moloto2004()回复于 2006-03-21 12:16:42 得分 0
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;
}
int nFileCount = m_list.GetCount(); //有多少个附件需要发送
//分配内存保存附件信息 不能使用静态数组,因为不知道要发送附件的个数
MapiFileDesc* pFileDesc = (MapiFileDesc*)malloc(sizeof(MapiFileDesc) * nFileCount);
memset(pFileDesc,0,sizeof(MapiFileDesc) * nFileCount);
//分配内存保存附件文件路径
TCHAR* pTchPath = (TCHAR*)malloc(MAX_PATH * nFileCount);
CString szText;
for(int i = 0;i < nFileCount;i++)
{
TCHAR* p = pTchPath + MAX_PATH * i;
m_list.GetText(i,szText);
strcpy(p,szText);
(pFileDesc + i)->nPosition = (ULONG)-1;
(pFileDesc + i)->lpszPathName = p;
(pFileDesc + i)->lpszFileName = p;
}
//收件人结构信息
MapiRecipDesc recip;
memset(&recip,0,sizeof(MapiRecipDesc));
recip.lpszAddress = m_szEmailMAPI.GetBuffer(0);
recip.ulRecipClass = MAPI_TO;
//邮件结构信息
MapiMessage message;
memset(&message, 0, sizeof(message));
message.nFileCount = nFileCount; //文件个数
message.lpFiles = pFileDesc; //文件信息
message.nRecipCount = 1; //收件人个数
message.lpRecips = &recip; //收件人
message.lpszSubject = m_szSubject.GetBuffer(0); //主题
message.lpszNoteText= m_szText.GetBuffer(0); //正文内容
//发送邮件
int nError = lpfnSendMail(0, 0,
&message, MAPI_LOGON_UI|MAPI_DIALOG, 0);
if (nError != SUCCESS_SUCCESS && nError != MAPI_USER_ABORT
&& nError != MAPI_E_LOGIN_FAILURE)
{
AfxMessageBox(AFX_IDP_FAILED_MAPI_SEND);
}
//不要忘了释放分配的内存
free(pFileDesc);
free(pTchPath);
FreeLibrary(hMod);Top
4 楼kun_c_com()回复于 2006-03-21 14:15:53 得分 0
我只想往inbox里添加一封邮件,并不是发送邮件Top
5 楼moloto2004()回复于 2006-03-23 14:36:22 得分 0
The MAPISaveMail function saves a message into the message store.Top
相关问题
- 如何编程实现向outlook express中添加邮件规则?
- 如何用编程的方法添加一个新的邮件账户到Outlook Express 6.0
- 发送邮件如何添加附件?
- 请问怎样添加邮件帐户?
- 有谁可以给一个向系统添加(注册)新用户(包括邮件信息)的例子?
- outlook邮件求助
- 在api中,用shellexecute可以调出邮件程序,如outlook express,但是能否同时把附件添加上呢?
- 100分提问,想使用outlook application控制在程序中添加用户帐号,再连接服务器去接受邮件,应该怎么做.
- 请问NMSMTP控件发邮件时,怎么添加附件?
- 已经配置好了sendmail,如何添加邮件用户。




