王权 君与民 汉化:谁能把vb中的示例应用程序Vbmail发给我 ?

来源:百度文库 编辑:神马品牌网 时间:2024/03/28 16:27:31
我用的企业版没有那个示例程序。
我的邮箱是 yinwei2006win@gmail.com

使用 MAPI 控件

消息处理应用程序接口 (MAPI) 控件,可用于创建具有电子邮件功能的 Visual Basic 应用程序。MAPI 是一系列的核心系统部件,它们可将任何用于电子邮件或工作组的应用程序,和适应 MAPI 的消息服务天衣无缝地连接起来。例如,通过使用 MAPI 驱动程序,Microsoft Exchange 消息系统可被连接到绝大多数私用或公用电子邮件系统中。

在 Visual Basic 中,MAPI 控件可用于与基本的消息子系统进行交互。要使用这些控件,则必须先安装适应 MAPI 的电子邮件系统,比如 Microsoft Exchange。基本的消息服务已由工作组环境提供了,比如说,在 Windows 95 或 Windows NT 环境下运行的 Microsoft Exchange 服务器。

使用 MAPI 控件包括两个步骤:建立 MAPI 会话,然后使用各种属性和方法访问和管理个人的收件箱。比如,创建并发送消息、加上附加文件、验证电子邮件系统地址簿中的收件人地址,等等。

MAPISession 控件登录并建立 MAPI 会话。它也可用于退出 MAPI 会话。MAPIMessages 控件包含了完成上面所说的消息系统功能所需的所有属性和方法。

MAPI 控件在运行时是不可见的。另外,这些控件不具有任何事件。只有通过设置适当的属性,或指定适当的方法来使用它们。

注意 如果要运行使用了 MAPI 控件的程序,则需要保证已经正确安装了 32 位的 MAPI DLL,否则就不能完成象 SignOn 之类的 MAPI 功能。例如,为了正确使用 MAPI 功能,在 Windows 95 中,安装系统时必须同时安装 Exchange,或者在“控制面板”中单独安装。

用途
在应用程序中加入消息系统功能。

创建功能完备的电子邮件应用程序。
使用 MAPISession 控件
MAPISession 控件用于登录和退出一个 MAPI 会话。假如已存在 MAPI 服务,那么用 MAPISession 控件进行登录只是提供注册用户的姓名和密码。MAPISession 控件将确定操作系统中的电子邮件设置,并调用基本的消息子系统(电子邮件服务器)。

MAPISession 控件

设置 MAPISession 的属性
在设计时可用 MAPISession 的“属性页”设置 MAPISession 的属性。用鼠标右键单击 MAPISession 控件,并单击“属性”以显示“属性页”对话框。

在设计时设置 MAPISession 的属性

UserName 和 Password 属性被用来向基本的消息系统提供合法的登录信息。可以在设计时设置这些属性,也可以在运行时向用户提示输入这些属性。在需要向用户提供基本的电子邮件系统的登录对话框时,请将 LoginUI 属性设置为 True。如果不存在这样的对话框,则忽略该属性。可以创建自定义的对话框提示用户输入这些信息。

NewSession 属性指定是否需要建立新的电子邮件会话。如果已经建立了合法的会话,通过设置 NewSession 属性可使两个会话并发运行。

DownloadMail 属性指定在当前会话开始时,是否自动下载该用户的电子邮件。将该值设置为 True,将把该用户的所有电子邮件下载到其收件箱。根据电子邮件系统的速度和接收的电子邮件数量,该操作有可能是很耗时的操作。通过将该属性设置为 False,用户可以选择是否等到以后再下载电子邮件,或者设置自动下载电子邮件的时间间隔。

SignOn 和 SignOff 方法
设置了 UserName 和 Password 属性后,就可以在运行时使用 SignOn 方法启动 MAPI 会话了。

例如:

mpsSession.SignOn

会话建立后,该会话的句柄被保存在 SessionID 属性中。根据 NewSession 属性的值,该会话句柄可能指向新创建的会话,也可能指向已经存在的会话。

要终止会话,请使用 SignOff 方法。

注意 Action 属性也可用于登录和退出 MAPI 会话。然而,建议使用 SignOn 和 SignOff 方法。Action 属性只是用来保持与早先版本的 Visual Basic 兼容。

SessionID 属性
用 SignOn 方法成功地建立了消息处理会话后,SessionID 属性将返回一个唯一的消息处理会话句柄。SessionID 的值可被 MAPIMessages 控件用来创建与合法消息处理会话的关联。按照缺省规定,该值为 0。

使用 MAPIMessages 控件
使用 MAPISession 控件在消息处理会话中登录后,就可以使用 MAPIMessages 控件接收、发送或阅读收件箱中的消息了。该收件箱是在登录时指定的。

MAPIMessages 控件提供了完成基本电子邮件任务的属性和方法。这些基本任务有:撰写一条消息、将其发送给收件人、检查收件人地址是否有效,或者附加上一个文件。

MAPIMessages 控件

在绝大多数情况下,MAPIMessage 控件用于为应用程序提供与电子邮件兼容的特定功能。例如,需要在应用程序自动创建了报表后,向工作组发一个通知消息。换句话说,可以在自编的应用程序中加入与电子邮件功能,而无需创建完备的电子邮件应用程序。

不过,用 MAPI 控件同样能够创建非常强大的,具有电子邮件和工作组功能的应用程序。

示例应用程序:VBMail.vbp
下面的示例演示了 Visual Basic 中 MAPI 的基本用法。要知道 MAPI 控件属性和方法的更详尽用法,请参考 VBMail.vbp 示例应用程序,该示例应用程序列在 Samples目录中。

注意 用 OLE 消息处理技术也可以将 MAPI 功能加入自编的应用程序中,有关 OLE 消息处理的消息可以在 Microsoft Exchange Microsoft Exchange Software Development Kit 中找到。

与 SessionID 属性相关联
MAPIMessages 控件的 SessionID 属性包含了 MAPISession 控件的 SessionID 属性返回的消息处理会话句柄。要使 MAPIMessages 控件与有效的消息处理会话相关联,就需要将该属性设置为成功登录的 MAPISession 控件的 SessionID。例如:

mpmMessage.SessionID = mpsSession.SessionID

只有与有效的 MAPI 会话相关联,才能使用 MAPIMessages 控件并访问消息。

访问消息
成功登录到 MAPI 会话后,就可以访问注册用户的收件箱了。注册用户由 MAPISession 控件的 UserName 和 Password 属性指定。收件箱是消息的仓库。收件箱被打开时,创建两个缓冲区:撰写缓冲区和阅读缓冲区。

阅读缓冲区由从用户的收件箱中得到的编了号的消息集合构成。MsgIndex 属性用来访问该集合中的每条消息,第一条消息的编号值为 0,然后依次加一,直到集合的末尾。

该消息集合是用 Fetch 方法建立的。该集合包括所有 FetchMsgType 类型的消息,并根据 FetchSorted 属性的指定进行了排序。FetchMsgType 属性的值由基本的消息系统控制。FetchSorted 属性可被设置为按照接收消息的顺序,或按照用户收件箱指定的顺序,将消息加入消息集合(阅读缓冲区)。已经阅读过的消息,可通过设置 FetchUnreadOnly 属性,确定是包括在消息集合之中,还是排除在消息集合之外。

用户不能修改阅读缓冲区中的消息,但用户可以将它们复制到撰写缓冲区进行修改。

消息可在撰写缓冲区中创建和编辑。当 MsgIndex 属性设置为 -1 时,撰写缓冲区有效。很多消息操作只在撰写缓冲区中才有效。比如:发送消息、保存消息或删除收件人和附件等操作。

撰写和管理消息
管理消息是 MAPIMessages 控件的最基本的功能。撰写、发送、接收和删除消息等操作,通过使用对应其基本功能(合并、复制、删除等等)的方法完成。下表列出了应用于消息的 MAPIMessages 方法:

方法 描述
Compose 撰写新的消息
Copy 将当前编号的消息复制到撰写缓冲区
Delete 删除一条消息、收件人或附件
Fetch 从收件箱中选定的消息中创建消息集合
Forward 转发消息
Reply 答复消息
ReplyAll 答复消息的所有收件人
Save 保存撰写缓冲区中的当前消息
Send 发送消息

要对一条消息进行操作,必须首先用 MsgIndex 属性选中它。由 MsgIndex 属性标识的消息被称为当前编号的消息。

在 MsgIndex 属性选中某条消息之前,不能设置其它消息属性。消息编号的有效范围是 -1 到 MsgCount -1(MsgCount 属性返回消息集合中的消息总数)。创建新的消息后,MsgIndex 属性的值被设置为 -1。

撰写消息
用 Compose 方法可以创建新消息。使用 Compose 方法后,撰写缓冲区被清空,并且 MsgIndex 属性被设置为 -1。

'撰写新消息
mpmMessage.Compose

完成消息需要如下几步:确定消息的收件人,选择主题以及编写消息。

确定消息地址
要设置收件人的姓名和地址,可使用 RecipDisplayName 和 RecipAddress 属性。其中 RecipDisplayName 是收件人的有效姓名,比如“Richard Tull”。RecipAddress 属性包含了收件人的电子邮件地址“richtull”,如下所示。

'确定消息地址
mpmMessage.RecipDisplayName = "Richard Tull"
mpmMessage.RecipAddress = "richtull"

本地工作组以外的收件人地址(比如通过 Internet 发送给其它公司某人的消息)需要完整的 Internet 电子邮件地址:“richtull@littlemag.com”。

验证收件人姓名
收件人姓名在发送消息时,用 ResolveName 方法,参照电子邮件系统中注册的用户列表进行验证。本地工作组之外的收件人姓名的检查,由基本的消息系统用不同方法进行验证。

下面的示例调用 ResolveName 方法验证了收件人的有效电子邮件名称,并将 AddressResolveUI 属性设置为 True。

'验证收件人姓名
mpmMessage.AddressResolveUI = True
mpmMessage.ResolveName

发送消息时,如果收件人地址有二义性或无效,可以通过将 AddressResolveUI 属性设置为 True 以显示对话框输入详细情况,或设置为 False 以产生错误。如果找到了较接近的地址,输入详细情况的对话框将提供一个替换的地址。

消息主题和文本
MsgSubject 属性指定了消息的主题行。包括 Null 字符在内,在主题中最多可以输入 64 个字符。

该消息的消息体包含在 MsgNoteText 属性中。在入站 (inbound) 的消息中,每段消息由回车换行符 (vbCrLf) 结束。出站 (Outbound) 的消息中,每段消息可以由回车符 (vbCr)、换行符 (vbLf),或者回车换行符结束。

'创建消息
mpmMessage.MsgSubject = "Status Report"
mpmMessage.MsgNoteText = "Build successful!"

发送消息
要发送消息,可使用 Send 方法。

你需要下载安装MSDN才行。那里面有你要的例子。