如果读取outlook的信件(300分)

  • 主题发起人 主题发起人 woodstock
  • 开始时间 开始时间
W

woodstock

Unregistered / Unconfirmed
GUEST, unregistred user!
请问谁有outlook信件存储格式的文档,或者读取其内容的方法,或者读取其内容的构件。
请告诉我。多谢。
 
在历史问题里有人讨论过的,但是好像没什么结果
所以在这里我也要听听
 
大家来讨论啊
 
好像就是文本方式,你打开看看
内容是按email的标准格式,如:
From:
To:
Subject:
等.
你找一份rfc看看
 
outlook发出的邮件信头是文本格式的,可以用记事本等直接看到,而信的内容是特定的
格式,用文本编辑器打开时只能看到乱码。你可以看到里面有注明This is a multi-part
message in MIME format.译码器可以通过这个来解码的。
 
有控件呀
TOutlookConnect.zip在
http://202.103.176.81/frun/shangrw/
 
多谢多谢,我先看看这个构件。
 
to www:
好象不通!这个构件也不知道怎么用的,我看delphi5在页Servers页面中也带有
OutLookApplication
AppointmentItem
ContactItem
等这3个构件肯定和outlook邮件的读取有关,但是都没有任何的文档和说明。
我要做的目的是从outlook中读取邮件,只要是源文件就可以了。对于早期的版本的
outlook,这些邮件的原始信息都没有任何处理,但是到了outlook5,好象加密过了。
 
delphi5中的outlook控件都是通过ole automation 来控制outlook的,所以
你还得看看 outlook的vba 帮助才行。不过它的帮助却是有用,有好多例子
你参考参考就可以改成delphi的了,慢慢研究吧
 
只要源文件?不需要译码过的吗?如果只是想获得outlook向外发送的源文件
的话我有做过的。
 
我要完成的是outlook的邮件的导入的功能。

to: terry_lzs
我需要的只是outlook的源文件,您如果有Demo,请发一个给我好吗?

to elan:
outlook的vba 帮助什么地方有?
 
好的,我发到你的信箱去了。不过因为只是个试验时用的程序,比较乱,将就将就吧。
 
to: terry_lzs 收到,非常感谢,我看看再说。
 
to: terry_lzs ,受到的您是实验smtp协议的例子,但是不符合我的要求。

我的意思是要完成在我的程序中,把outlook的电子邮件导入的功能。
 
to:woodstock
是不是你想做的是你已经有象我的程序收到的那样的outlook数据,你要做的是把它导入
outlook,以便可以用outlook看?
 
不是,我的程序是一个电子邮件收发软件,我要把原来别人保存在outlook中的信件都导入到
我的程序中。以方便别人使用我的软件。
我需要的只是这些源邮件,因为解码部分我可以自己写。
 
office的帮助里有。如果是office2000,要定制安装,选择vba帮助

以下这个vba例子得到收件箱里的每封mail的内容和发件人地址

Sub SendMail()

Dim myNameSpace As NameSpace
Dim myFolder As MAPIFolder
Dim myItem As MailItem
dim myRecipients As Recipients
Dim I As Integer

Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
For I = 1 To myFolder.Items.Count
Set myItem = myFolder.Items(I)
Debug.Print myItem.Body
Debug.Print myItem.Reply.Recipients.Item(1)
Debug.Print myItem.Reply.Recipients.Item(1).Address
Debug.Print "-----------------------------"
Next



End Sub

 
这个方法不行,在安装了office 2000后,因为office 2000有自带的outLook,所以可以这样做
但是更多的是使用 win98的自带的OutLook Express.
我写的代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
OlApp: Variant;
NameSpace: Variant;
ListFolder: Variant;
i : integer;
begin


to: www你说的那个TOutLookConnect的构件也是基于这个方法的,所以不好用。
try
OlApp:=CreateOleObject('OutLook.Application');
NameSpace:=OlApp.GetNamespace('MAPI');

except
showMessage('Outlook registration failed');
Exit;

end;

ListFolder := NameSpace.GetDefaultFolder(olFolderInbox ); //已收邮件夹

for i := 1 to ListFolder.Items.Count do
begin
Memo1.Lines.Add(ListFolder.Items.Body); //得到Body
{....}
end;


OlApp := NULL;
NameSpace := NULL;
OlApp.Quit;
end;

但是在运行时,OlApp:=CreateOleObject('OutLook.Application')这行错误,
原因是没有“outlook.Application”。(安装了office 2000以后就可以,但是这样
读取到的信息是Office2000的OutLook里面的邮件的内容,而不是windows自带的那个
outlook的邮件的内容)。

不知道哪位大虾还有什么好方法。。。

 
后退
顶部