MAPI簡介
MAPI接口是由微軟公司提供的一系列供使用者開發(fā)Mail、Scheduling、bulletin board、communication程序的編程接口。在使用MAPI設(shè)計程序時,首先必須在程序和MAPI之間建立一條或數(shù)條Session;當(dāng)Session建立好之后,Client端程序就可以使用MAPI所提供的功能。
MAPI的功能主要分成三大部分:Address Books、Transport和Message Store。Address Books主要負(fù)責(zé)設(shè)置E-mail type、protocol等參數(shù);Transport負(fù)責(zé)文件的發(fā)送和接收等功能;Message Store則負(fù)責(zé)發(fā)送接收等信息的處理。
說了這么多,MAPI接口好像很可怕。不過沒關(guān)系,Visual Basic所提供的MAPISession control及MAPIMessage control,已經(jīng)將許多復(fù)雜的部分包裝成簡單的property和功能,我們只需要對property及功能作一些簡單的設(shè)置,就可以寫一個mail發(fā)送和接收的程序。
以下筆者將用Visual Basic的MAPI control,來設(shè)計mail傳送和接收的程序。
E-mail發(fā)送部分
Step 1:設(shè)置Exchange各項參數(shù)
進入Exchange系統(tǒng),選擇新增設(shè)置文件;屏幕上會顯示所需要的信息服務(wù),選擇Internet Mail。將設(shè)置文件的名稱設(shè)為test。屏幕會顯示兩個選項,您可以選擇以modem方式,或以network 方式連接。筆者所用的是Internet專線,所以選擇network;假若您是使用 PPP撥號方式連接Internet,就要選擇modem。
選擇network后,Exchange會要求我們輸入mail server的IP address。筆者現(xiàn)在所使用的 Mail server地址是202.96.128.111,在本程序中便將它設(shè)置為該地址。
接著將Transform message的模式設(shè)置為automatic,這樣當(dāng)我們連接到Mail server時,新的信息會自動download到local端。
接下來,將您所使用的Email address、full name、password、download path一步一步設(shè)置好,這樣就完成了Exchange各項參數(shù)的設(shè)置。
Step 2:程序設(shè)計
在File選項中選擇New Project建立一個新的工程,這時屏幕上會看到許多選項,例如ActiveX Document.EXE、ActiveX Document.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。 為方便讀者了解彼此關(guān)系,以下表解釋一遍:
(TextBox) Name
subject (輸入信件標(biāo)題)
content (輸入信件內(nèi)容)
addr (輸入信件要傳送的位址)
(Label) Caption
subject (輸入信件標(biāo)題提示)
content (輸入信件內(nèi)容提示)
addr (輸入信件要傳送的位址提示)
將MAPIm1的各項property設(shè)置如下:
download mail=TRUE
logoUI= TRUE
newsession=FALSE
username="test"
這里將download mail設(shè)置為TRUE,當(dāng)程序和mail server第一次連接時,會將新的mail download到local端。將logoUI設(shè)置為TRUE,則當(dāng)您程序中l(wèi)ogon名稱輸入錯誤時,系統(tǒng)會顯示一個Message Box來讓您輸入正確的名稱。由于這個程序僅使用到一條session,我們將它的值設(shè)置成FALSE。當(dāng)然啦!如果您有許多session要建立的話,也可以將它設(shè)置成TRUE。 username中所填的,是我們在Exchange中所新增的設(shè)置文件名稱;如果沒有填內(nèi)容的話,系統(tǒng)將會顯示一些message box請您輸入文件。
在屏幕的Form上加入三個Button control,logon、logoff與send,分別將Caption改為log on、log off、send。
(Button)
Name Caption
logon (執(zhí)行登入命令) logon
logoff (執(zhí)行登出命令) logoff
send (執(zhí)行傳出信件命令) send
在 logon_Click()中加入以下程序代碼,這個動作是使我們登錄到mail server。
MAPIS1.SignOn
MAPIM1.SessionID = MS1.SessionID
MsgBox "your id is" + Str(MS1.SessionID)
MS1.SignOn是作登錄的動作。在登錄時,因為已經(jīng)將MAPIm1 control的download mail屬性設(shè)置為TRUE,所以可以在屏幕上看到message box顯示系統(tǒng)正在download mail。登錄成功后,系統(tǒng)會傳回一個sessionID,將該ID填入MAPIM1的SessionID中,這樣就可以利用這條session來傳送E-mail。
MAPI接口是由微軟公司提供的一系列供使用者開發(fā)Mail、Scheduling、bulletin board、communication程序的編程接口。在使用MAPI設(shè)計程序時,首先必須在程序和MAPI之間建立一條或數(shù)條Session;當(dāng)Session建立好之后,Client端程序就可以使用MAPI所提供的功能。
MAPI的功能主要分成三大部分:Address Books、Transport和Message Store。Address Books主要負(fù)責(zé)設(shè)置E-mail type、protocol等參數(shù);Transport負(fù)責(zé)文件的發(fā)送和接收等功能;Message Store則負(fù)責(zé)發(fā)送接收等信息的處理。
說了這么多,MAPI接口好像很可怕。不過沒關(guān)系,Visual Basic所提供的MAPISession control及MAPIMessage control,已經(jīng)將許多復(fù)雜的部分包裝成簡單的property和功能,我們只需要對property及功能作一些簡單的設(shè)置,就可以寫一個mail發(fā)送和接收的程序。
以下筆者將用Visual Basic的MAPI control,來設(shè)計mail傳送和接收的程序。
E-mail發(fā)送部分
Step 1:設(shè)置Exchange各項參數(shù)
進入Exchange系統(tǒng),選擇新增設(shè)置文件;屏幕上會顯示所需要的信息服務(wù),選擇Internet Mail。將設(shè)置文件的名稱設(shè)為test。屏幕會顯示兩個選項,您可以選擇以modem方式,或以network 方式連接。筆者所用的是Internet專線,所以選擇network;假若您是使用 PPP撥號方式連接Internet,就要選擇modem。
選擇network后,Exchange會要求我們輸入mail server的IP address。筆者現(xiàn)在所使用的 Mail server地址是202.96.128.111,在本程序中便將它設(shè)置為該地址。
接著將Transform message的模式設(shè)置為automatic,這樣當(dāng)我們連接到Mail server時,新的信息會自動download到local端。
接下來,將您所使用的Email address、full name、password、download path一步一步設(shè)置好,這樣就完成了Exchange各項參數(shù)的設(shè)置。
Step 2:程序設(shè)計
在File選項中選擇New Project建立一個新的工程,這時屏幕上會看到許多選項,例如ActiveX Document.EXE、ActiveX Document.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。 為方便讀者了解彼此關(guān)系,以下表解釋一遍:
(TextBox) Name
subject (輸入信件標(biāo)題)
content (輸入信件內(nèi)容)
addr (輸入信件要傳送的位址)
(Label) Caption
subject (輸入信件標(biāo)題提示)
content (輸入信件內(nèi)容提示)
addr (輸入信件要傳送的位址提示)
將MAPIm1的各項property設(shè)置如下:
download mail=TRUE
logoUI= TRUE
newsession=FALSE
username="test"
這里將download mail設(shè)置為TRUE,當(dāng)程序和mail server第一次連接時,會將新的mail download到local端。將logoUI設(shè)置為TRUE,則當(dāng)您程序中l(wèi)ogon名稱輸入錯誤時,系統(tǒng)會顯示一個Message Box來讓您輸入正確的名稱。由于這個程序僅使用到一條session,我們將它的值設(shè)置成FALSE。當(dāng)然啦!如果您有許多session要建立的話,也可以將它設(shè)置成TRUE。 username中所填的,是我們在Exchange中所新增的設(shè)置文件名稱;如果沒有填內(nèi)容的話,系統(tǒng)將會顯示一些message box請您輸入文件。
在屏幕的Form上加入三個Button control,logon、logoff與send,分別將Caption改為log on、log off、send。
(Button)
Name Caption
logon (執(zhí)行登入命令) logon
logoff (執(zhí)行登出命令) logoff
send (執(zhí)行傳出信件命令) send
在 logon_Click()中加入以下程序代碼,這個動作是使我們登錄到mail server。
MAPIS1.SignOn
MAPIM1.SessionID = MS1.SessionID
MsgBox "your id is" + Str(MS1.SessionID)
MS1.SignOn是作登錄的動作。在登錄時,因為已經(jīng)將MAPIm1 control的download mail屬性設(shè)置為TRUE,所以可以在屏幕上看到message box顯示系統(tǒng)正在download mail。登錄成功后,系統(tǒng)會傳回一個sessionID,將該ID填入MAPIM1的SessionID中,這樣就可以利用這條session來傳送E-mail。