如何用程序从outlook express中取出邮件

xiao234666 2008-03-01 09:07:21
以前在类似的帖子里看见过如何提取的解答,我得到一段代码,经过我加上头文件整理后得:
#include "vcl.h"
#include "oleauto.hpp"

void main()
{
Variant vOutlook, vNameSpace;
Variant vFolder, vMsg;
int nMailCounter;

try
{
vOutlook = CreateOleObject("Outlook.Application");
}
catch(...)
{
ShowMessage("error in create ole object");
}
vNameSpace = vOutlook.OleFunction("GetNameSpace", "MAPI");
// FolderTypeEnum (olFolderInbox)
vFolder = vNameSpace.OleFunction("GetDefaultFolder", 6);
nMailCounter = 1;

// If there is any email in the Inbox
if(vFolder.OlePropertyGet("Items").OlePropertyGet("Count") > 0)
{
do
{
// Get the first Email
vMsg = vFolder.OleFunction("Items", nMailCounter);
String FileName = vMsg.OlePropertyGet("Subject");
String DesPath = "C:\\"+FileName+".msg";
char* DesFilePath = DesPath.c_str();
vMsg.OleFunction("SaveAs", DesFilePath);
nMailCounter++;
}
while(nMailCounter <= vFolder.OlePropertyGet("Items").OlePropertyGet("Count"));
}
vOutlook.OleFunction("Quit");
}
但我运行时提示CreateOleObject()这个函数存在如下错误提示:
"ambiguity between '_fastcall comobj::createOleObject(const system::ansistring)' and '_fastcall oleauto::createOleObject(const system::ansistring)'"

  我猜想可能缺少某个头文件,但查了下资料一直没有找到这个头文件,希望得到你或大家的解答.

  还有一个问题就是:当我从outlook express中提取出了邮件后,假定得到了每封邮件的发件人,收件人,发送时间,信件内容等这些信件信息后,如何将它们再发送出去呢(发送邮件的代码希望大家能给些提示)?或许大家会有疑问,为什么得到了又要发出去呢?这是因为,我现在做一个模拟实验,需要借助outlook express这个软件方便得到大量邮件来完成我的实验.举个例子说明我到底想要干什么:
  如我在outlook express中有一封发件人为"11111@163.com",收件人为"22222@126.com",发送时间为"2008年3月1日 10:00",的信件;现在我要将这封信发到我架设的一个邮件服务器上的一个邮箱,架设这个邮箱为"xxxxx@xx.com";我就将此封信件的发件人改为"邮件服务器上除用户名为xx的任意有效用户名@xx.com",收件人改为"22222@xx.com",向邮件服务器发出该邮件
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzhumouse 2011-02-23
  • 打赏
  • 举报
回复
http://www.vckbase.com/article/internet/2.htm
redjuly 2008-03-03
  • 打赏
  • 举报
回复
这个估计得用到office的自动化方面的东西吧
星羽 2008-03-03
  • 打赏
  • 举报
回复
up
arong1234 2008-03-01
  • 打赏
  • 举报
回复
至于MailItem有啥属性,需要看Outlook联机帮助,完全安装Outlook时,系统会带
不过Outlook编程最好用VB,用C++例子少
arong1234 2008-03-01
  • 打赏
  • 举报
回复
首先更正一下:这是Outlook,不是Outlook Express, 两者是完全不同的产品,提供的接口也完全不一样,如果你是以OE为平台的,首先Outlook Express微软实际不不怎么支持你开发



至于发送出去,你可以创建一个MailItem对象,把这个信的Body/Sender拷贝到这个新的对象上,然后把收件人改成你目标油箱即可。

但是:这样的发送不可能保持邮件和你原来接收时完全一样,尤其是发送时间肯定改为新的了

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧