E-mail是Internet/Intranet网上通信的最主要的方式之一,充分利用E-mail 的功能可以极大地提高企业的工作效率,减轻用户的工作负担。Windows 95中提供了一个名为Exchange的电子邮件客户程序,它包含了收件箱、发件箱、收发消息、消息优先级等功能,广泛支持超文本消息、收发传真和Internet邮件等内容,可以在LAN、Microsoft Fax、远程邮件、Internet等多种软件环境中工作。在VFP、VB开发的应用系统中结合Exchange的邮件服务功能,可以使您的应用系统功能更强大、服务更完善、使用更方便。下面介绍VB、VFP的MAPI控件以及在VB、VFP应用系统中使用这些控件收发E-mail的方法。
一.MAPI控件概述
MAPI(通信应用程序接口)控件,即MSMAPI32.OCX,包括两个OLE控件:MAPISession(MAPI工作期)控件和MAPIMessage(MAPI消息)控件。MAPISession控件的功能是负责建立会话、取消会话的一个MAPI工作期。MAPIMessage控件则提供了发送、接收等所有对电子邮件进行处理的功能。
MAPISession控件用来注册一个新工作期和注销当前工作期。注册时,首先
用MAPISession控件的SignOn方法建立与E-mail服务器的会话连接,显示完注册对话框后,SessionID属性包含了刚注册的MAPISession的句柄。此句柄最终必须传递给MAPIMessage控件,在结束当前MAPISession工作期之前,必须先注销该工作期。然后再用MAPIMessage控件的SessionID属性同有效的会话联系起来,执行一系列消息系统函数,实现收发邮件的功能。
二.MAPI控件的主要属性
(1)MAPISession控件的属性:
Action属性:当MAPISession控件被激活时,该属性将决定执行什么操作。
LogonUI属性:该属性指定是否显示注册对话框。当其值为“真”时,则出
现一个对话框提示新用户输入用户名和口令;当其值为“假”时,则不显示对话框。
SessionID属性:返回当前的消息会话句柄。指定SignOn方法时,可以设置该属性的值。使用MAPIMessage控件处理消息时,需要使用此会话句柄,其缺省值为0。
SignOn方法:将用户登录到UserName和Password属性所指定的帐户中,并将会话句柄存储到属性SessionID中。
SignOff方法:结束消息会话,从UserName和Password属性所指定的帐户中
退出。
(2)MAPIMessage控件的属性:
Action属性:当MAPIMessage控件被激活时,该属性决定将执行什么操作。
SessionID属性:存储由MAPISession控件的SessionID属性返回的消息会话句柄。
FetchSorted属性:在用收件箱中的消息填充消息集合时,指定或返回消息的排序。当其值为“真”时,按接收消息的顺序向消息集合添加消息;当其值为“假”时,由用户收件箱中的排序添加消息。
FetchUnreadOnly属性:决定是否将消息集合中的消息限定为未读消息。当其值为“真”时,只向消息集合添加FetchMsgType属性指定的未读消息;当其值为“假”时,添加收件箱中适当类型的全部消息。
MsgCount属性:用于在消息工作期间返回存在于消息设置中的消息的总数。
MsgIndex属性:指定当前索引消息的索引编号。在索引改变时,所有消息的其它属性也随之改变,以反映索引消息的特征。索引号的范围是从-1到MsgCount-1。
MsgOrigDisplayName属性:返回当前索引消息的原始发件人的名字。
MsgOrigAddress属性:返回当前索引消息的原始发件人的邮件地址。
RecipDisplayName、RecipAddress、MsgSubject、MsgNoteText属性:分别指定当前索引的收件人姓名、收件人的邮件地址、主题、文本行,构成一条完整的消息。
Send方法:发送一条消息。它带有一个参数nDialog,当nDialog为“真”时,显示Exchange邮件系统的操