![]() ![]() |
|
用VisualBasic5.0设计E-mail程序(MAPI) | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:44:35 文章录入:杜斌 责任编辑:杜斌 | |
|
|
MAPI简介 MAPI接口是由微软公司提供的一系列供使用者开发Mail、Scheduling、bulletin board、communication程序的编程接口。在使用MAPI设计程序时,首先必须在程序和MAPI之间建立一条或数条Session;当Session建立好之后,Client端程序就可以使用MAPI所提供的功能。 MAPI的功能主要分成三大部分:Address Books、Transport和Message Store。Address Books主要负责设置E-mail type、protocol等参数;Transport负责文件的发送和接收等功能;Message Store则负责发送接收等信息的处理。 说了这么多,MAPI接口好像很可怕。不过没关系,VisualBasic所提供的MAPISession control及MAPIMessage control,已经将许多复杂的部分包装成简单的property和功能,我们只需要对property及功能作一些简单的设置,就可以写一个mail发送和接收的程序。 以下笔者将用Visual Basic的MAPI control,来设计mail传送和接收的程序。 E-mail发送部分 Step 1:设置Exchange各项参数 进入Exchange系统,选择新增设置文件;屏幕上会显示所需要的信息服务,选择Internet Mail。将设置文件的名称设为test。屏幕会显示两个选项,您可以选择以modem方式,或以network 方式连接。笔者所用的是Internet专线,所以选择network;假若您是使用 PPP拨号方式连接Internet,就要选择modem。选择network后,Exchange会要求我们输入mail server的IPaddress。笔者现在所使用的 Mail server地址是202.96.128.111,在本程序中便将它设置为该地址。接着将Transform message的模式设置为automatic,这样当我们连接到Mail server时,新的信息会自动download到local 端。 接下来,将您所使用的Email address、full name、password、download path一步一步设置好,这样就完成了Exchange各项 参数的设置。 Step 2:程序设计 在File选项中选择New Project建立一个新的工程,这时屏幕上会看到许多选项,例如ActiveX Document.EXE、ActiveXDocument.DLL、ActiveX.EXE、ActiveX Control等...,这时要选Standard.EXE。 在Project下,选择Property属性选项;在general选项下,将Project Name改为email-send, 并将Form名称及Caption更改为email-send 在屏幕的Form上加入一个MAPImessage control,取名为MAPIm1;加入一个MAPIsession control,取名为MAPIs1;加入三个textbox control, 取名为subject、content、addr。并在三个textbox前各加入一个Label,将Caption分别改为subject、content、addr。 (Button) Name Caption logon (执行登入命令) logon logoff (执行登出命令) logoff send (执行传出信件命令) send 在 logon_Click()中加入以下程序代码,这个动作是使我们登录到mail server。 MAPIS1.SignOn MAPIM1.SessionID = MS1.SessionID MsgBox "your id is" + Str(MS1.SessionID) MS1.SignOn是作登录的动作。在登录时,因为已经将MAPIm1control的download mail属性设置为TRUE,所以可以在屏幕上看到message box显示系统正在download mail。登录成功后,系统会传回一个sessionID,将该ID填入MAPIM1的SessionID中,这样就可以利用这条session来传送E-mail。 在 logoff_Click()中加入以下程序代码,这个动作是使我们离开mail server。 MAPIS1.SignOff 在 send_Click()中加入以下程序代码,这个动作是使我们发送email。 MAPIM1.Compose MAPIM1.RecipDisplayName = addr.text MAPIM1.AddressResolveUI = True MAPIM1.MsgSubject = subject.text MAPIM1.MsgNoteText = content.text MAPIM1.Send MsgBox "you successful"Compose命令的主要目的,是使您可以改变RecipDisplayName的内容,将所需传送的E-mail地址、主题、文章内容分别填入RecipDisplayName、MsgSubject、MsgNoteText,接着用send命令发送。 Step 3:用IE 3.0 Mail程序测试程序 执行上面设计的email-send程序。在subject textbox中填入"发信测试",在address textbox中填入gzsydici@public1.guangzhou.gd.cn,在content textbox中输入要传送的内容:"大家好!这是发信测试",接着按传送。这样信件就发送出去了! 执行IE 3.0选择接收信件,在mail选项中选择read mail。我们会在inbox中看到一封标题为"发信测试"的信件,接着我们看看它的内容,没错!那就是我们刚寄出的测试信。 E-mail接收部分 Step 1:程序设计 在File选项中选择New Project建立一个新的工程。在屏幕上看到许多选项,如ActiveX Document.EXE、ActiveXDocument.DLL、ActiveX.EXE、ActiveX Control等,这时要选Standard.EXE。 接着在Project下,选择Property属性选项;在general选项下,将Project Name改为 email-get,并将FORM名称及Caption更改为 email-get。 在屏幕的Form上加入一个MAPImessage control,取名为MAPIm 1;加入一个MAPIsession control,取名为MAPIs1;加入三个Textbox control,分别取名为subject、content、indexno,将其Caption改为mail-subject、mail-content、indexno;并在TextBox前各加入一个Label control,将Caption分别改为subject、content、indexno。 将MAPIm1的各项property设置如下: download mail=TRUE logoUI=TRUE newsession=FALSE username="test" 这些设置原理如同设计发送mail程序部分。接着,在屏幕的Form上加入一个Buttoncontrol get-mail,将Caption改为getmail。如同发送mail 程序部分和mailserver建立一条session。 在 get-mail_Click() 中加入以下程序代码,这个动作是使我 们接收email。 MAPIM1.Fetch Form1.Caption=MAPIM1. MsgCount MAPIM1.MsgIndex=CINT(indexno.text) subjec.Text = MM1.MsgNoteText content.Text = MAPI1.MsgSubject Fetch命令,是将信件抓到系统存贮器的inbuffer中。我们将信件抓回来后,可以由MsgCount property知道信件数量。接着可以用MsgIndex设置要看哪一封信件的内容、标题。 Stept 2:测试mail接收程序 首先用任何一种mail程序,任意书写几封信到mail server。在Form1的Caption中,我们会看到所接收的信件的数量。执行上面设计的email-get程序,在indexno textbox中填入1。接着按get mailButton,这样信件内容及标题就会显示在content、subject两个TextBox中。 |
|
![]() ![]() |