基于vc與word、outlook對(duì)象模型的email實(shí)現(xiàn)_第1頁(yè)
基于vc與word、outlook對(duì)象模型的email實(shí)現(xiàn)_第2頁(yè)
基于vc與word、outlook對(duì)象模型的email實(shí)現(xiàn)_第3頁(yè)
基于vc與word、outlook對(duì)象模型的email實(shí)現(xiàn)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于vc與word、outlook對(duì)象模型的email實(shí)現(xiàn)摘要: 分析了三種不同的實(shí)現(xiàn)郵件發(fā)送方法, 通過(guò)vc可視化開(kāi)發(fā)環(huán)境,結(jié)合word及outlook對(duì)象模型,實(shí)現(xiàn)將word格式以及其他文件格式的文件作為email的郵件體,從而利用word的強(qiáng)大編輯能力構(gòu)成與發(fā)送豐富多彩的郵件。關(guān)鍵詞:SMTP協(xié)議 MAPI編程接口 對(duì)象模型 動(dòng)態(tài)鏈接庫(kù) 郵件隨著信息技術(shù)的飛速,電子郵件作為一種通訊手段,在日常生活和辦公領(lǐng)域中發(fā)揮著巨大的作用,一些行業(yè)需要以郵件為載體,實(shí)現(xiàn)信息的實(shí)交互、反饋、統(tǒng)計(jì)等功能。Visual c+作為功能強(qiáng)大的可視化編程工具正在日益得到廣泛的應(yīng)用。使用vc開(kāi)發(fā)可以實(shí)現(xiàn)多線程,支持

2、面向?qū)ο?、模塊化、等特點(diǎn),大大提高軟件的開(kāi)發(fā)效率,同時(shí)結(jié)合 word、excel、outlook等office 對(duì)象模型,從而有望實(shí)現(xiàn)含多格式郵件體的郵件定時(shí)、批量的發(fā)送及其信息反饋的自動(dòng)處理。本文提出了一種利用vc實(shí)現(xiàn)郵件發(fā)送的方法,并且實(shí)現(xiàn)了將word、html文檔插入到郵件體,從而達(dá)到即有web網(wǎng)頁(yè)的生動(dòng),又具有郵件的快捷、方便的效果。1 基于vc的email功能實(shí)現(xiàn)在vc環(huán)境下有三種方法可以實(shí)現(xiàn)郵件的發(fā)送,下面分別介紹:(1):使用SMTP進(jìn)行設(shè)計(jì)。電子郵件系統(tǒng)所應(yīng)用的傳輸協(xié)議包括SMTP和POP協(xié)議。SMTP即簡(jiǎn)單郵件傳輸協(xié)議,屬于TCP/IP協(xié)議族,.使用SMTP設(shè)計(jì)基于以下通訊模

3、型:針對(duì)用戶的郵件請(qǐng)求,發(fā)送SMTP與接受SMTP之間建立一個(gè)雙向通道。一旦傳送通道建立,SMTP發(fā)送者發(fā)送mail命令指明郵件發(fā)送者。如果SMTP接受者接受,則返回OK應(yīng)答。SMTP發(fā)送者再發(fā)出RCPT命令確認(rèn)郵件是否接受到。故在vc環(huán)境下,基于SMTP協(xié)議的郵件發(fā)送流程為:SMTP協(xié)議也有自身的局限性,它只能傳輸ASCAII文本文件,但對(duì)于一些二進(jìn)制數(shù)據(jù)文件需要進(jìn)行編碼后才能傳輸。(2)使用MAPI進(jìn)行設(shè)計(jì)。MAPI是一系列的編程接口規(guī)范,而不是應(yīng)用程序、動(dòng)態(tài)鏈接庫(kù)或系統(tǒng)服務(wù)程序。它們可以將任何用于電子郵件或工作組的應(yīng)用程序與適應(yīng)MAPI的消息服務(wù)天衣無(wú)縫地連接在一起。在這個(gè)規(guī)范中詳細(xì)說(shuō)明

4、了用戶的應(yīng)用程序和服務(wù)提供應(yīng)用程序是如何通過(guò)API實(shí)現(xiàn)交互的。MAPI體系包括以下幾部分:MAPI的用戶應(yīng)用程序接口。包括簡(jiǎn)單的MAPI、CMC9(通用信報(bào)調(diào)用)、擴(kuò)展MAPI和Active/OLE報(bào)文接口。MAPI支持的客戶應(yīng)用程序的類型。包括報(bào)文感知應(yīng)用程序、報(bào)文激活應(yīng)用程序和基于報(bào)文的應(yīng)用程序。MAPI的服務(wù)供應(yīng)程序。包括地址提供者、報(bào)文提供者、傳輸提供者。使用vc開(kāi)發(fā)程序首先需要裝載動(dòng)態(tài)鏈接庫(kù)文件MAPI32.DLL,然后是得到程序?qū)?huì)使用到的各個(gè)函數(shù)的地址常用的函數(shù)為:MAPILogon(建立會(huì)話函數(shù))、MAPILogoff(結(jié)束會(huì)話函數(shù))、MAPIFreeBuffer(釋放緩沖內(nèi)存

5、函數(shù))、MAPISendMail(信報(bào)發(fā)送函數(shù))。通過(guò)調(diào)用以上函數(shù)即可實(shí)現(xiàn)郵件的發(fā)送。 由于MFC對(duì)MAPI進(jìn)行了很好的封裝,使開(kāi)發(fā)信報(bào)應(yīng)用程序的工作大大簡(jiǎn)化,同時(shí)MAPI提供了大量的函數(shù)和接口,可以提供豐富的信報(bào)功能,然而卻很難在郵件體里插入多種格式的文件,只能包含在附件里,對(duì)于某些基于郵件的市場(chǎng)活動(dòng)等,很難吸引郵件接受者的注意,故而達(dá)不到滿意的效果。(3)使用outlook對(duì)象模型進(jìn)行設(shè)計(jì)。使用outlook對(duì)象模型可以在vc開(kāi)發(fā)環(huán)境下實(shí)現(xiàn)outlook所有的信報(bào)功能,結(jié)合vc語(yǔ)言的多線程、模塊化設(shè)計(jì)與outlook的強(qiáng)大的信報(bào)處理功能,從而可以實(shí)現(xiàn)郵件的自動(dòng)、定時(shí)發(fā)送,并可以實(shí)現(xiàn)多格式郵

6、件體,在實(shí)現(xiàn)過(guò)程中相對(duì)以上兩種方法更加簡(jiǎn)單易行,本文重點(diǎn)介紹如何利用outlook來(lái)實(shí)現(xiàn)。2 Outlook、word對(duì)象模型的簡(jiǎn)單介紹Microsoft office 通過(guò)一個(gè)對(duì)象的等級(jí)系統(tǒng)和被稱為對(duì)象模型的對(duì)象集合,將其功能提供給VBA語(yǔ)言,一個(gè)程序包含兩個(gè)基本要素:內(nèi)容和功能。內(nèi)容指的是程序所包含的信息,也就是文檔等信息;功能指的應(yīng)用程序內(nèi)容的所有方式,例如打開(kāi)、關(guān)閉、刪除等。組成程序的內(nèi)容和功能以離散的單元提交給VBA,稱為對(duì)象。大部分情況下,程序提供給VBA的對(duì)象集同所有工作需要的對(duì)象對(duì)應(yīng)。程序提供的對(duì)象根據(jù)相關(guān)性以等級(jí)關(guān)系組織起來(lái)。最高級(jí)對(duì)象為Application,在其底下又有許

7、多的子對(duì)象,如Excel中的Workbook對(duì)象,word中的Document對(duì)象,通過(guò)使用對(duì)象的屬性和方法,可以使用office提供的所有功能。 以下簡(jiǎn)單介紹在本文使用的對(duì)象。(1) outlook對(duì)象模型: application對(duì)象。該對(duì)象是outlook的核心對(duì)象,即根對(duì)象,它提供了對(duì)其它所有對(duì)象的訪問(wèn)。Namespace對(duì)象。該對(duì)象是outlook數(shù)據(jù)源的一個(gè)抽象根,雖然該對(duì)象不被使用,它還是提供了對(duì)在對(duì)象樹(shù)底層上排在自己下面的對(duì)象的訪問(wèn)。Item對(duì)象。Outlook中最基本的信息單元。本文將使用mailitem對(duì)象。Explorer對(duì)象。文件夾中項(xiàng)目的可視化表示,outlook用e

8、xplorer顯示item對(duì)象。Impector對(duì)象。用來(lái)顯示項(xiàng)目的outlook窗體。Inspector之于項(xiàng)目,如同explorer之于文件夾。(2) word對(duì)象模型application對(duì)象。 Word的根對(duì)象。Document對(duì)象。該對(duì)象為word中的文檔對(duì)象,相對(duì)于word中的某一具體文檔。Range對(duì)象 document對(duì)象的某一特定區(qū)塊,可以通過(guò)不同的參數(shù)指定,比如一個(gè)段落、一個(gè)表格等。3. 使用outlook對(duì)象模型進(jìn)行設(shè)計(jì)使用outlook對(duì)象模型,需要在程序中包含對(duì)office對(duì)象的引用,獲得命名空間,然后調(diào)用對(duì)象的屬性和方法,以下列出了部分程序代碼。 (1)在stdaf

9、x.h 文件,加入以下語(yǔ)句:#import c:program filesMicrosoft OfficeOfficemsoutl9.olb /*outlook對(duì)象引用文件*/#import c:program filesMicrosoft OfficeOfficemsword9.OLB rename_namespace(WD) /*word對(duì)象引用文件*/#import rename_namespace(HTML) /*加入對(duì)html對(duì)象的引用*/(2) 郵件發(fā)送函數(shù) BOOL CProject:SendMail() WD:_ApplicationPtr pWD; WD:_DocumentP

10、tr pWordDoc; WD:RangePtr pMainStory; WD:_DocumentPtr pWordEditor; HTML:IHTMLDocument2Ptr pHtmlEditor; /* 定義word對(duì)象和html對(duì)象指針* pOL; pMail; pInspector; /* 定義outlook對(duì)象指針*/ TESTHR(pOL.CreateInstance(LOutlook.Application); /*創(chuàng)建outlook對(duì)象*/ pMail = pOL-CreateItem(); /*創(chuàng)建郵件對(duì)象*/ pMail-Display(); pMail-To = m_S

11、endPerson; pMail-CC = m_CopyPerson; pMail-Subject = m_bstrSubject; pInspector = pMail-GetInspector; /*建立郵件對(duì)象的發(fā)送人和主題*/ /以下為將現(xiàn)存的word或html文件插入到郵件體里 if(m_lngBodyFileSize0) TESTHR(pWD.CreateInstance(LWord.Application); _variant_t varBodyFileName=(pApp-m_BodyFilePathName).AllocSysString(); pWordDoc = (pWD

12、-Documents)-Open(&varBodyFileName); /*變量m_BodyFilePathName為所需插入郵件體的word或者h(yuǎn)tml文件所在的路徑*/ pMainStory = pWordDoc-Content; pMainStory-Copy(); pWordDoc-Close(); pWD-Quit(); pWordDoc = NULL; pWD = NULL; if(BOOL)(pInspector-IsWordMail() /*檢查是word格式還是html格式*/ pWordEditor = pInspector-WordEditor; (pWordEditor

13、-Content)-Paste(); else pHtmlEditor = pInspector-HTMLEditor; pHtmlEditor-execCommand(Paste,VARIANT_FALSE); pMail-Send();以上簡(jiǎn)單的介紹了如何實(shí)現(xiàn)郵件體的發(fā)送,真正的郵件程序,還有許多其它的工作,在這不再詳敘了,通過(guò)以上方法,可以實(shí)現(xiàn)多種格式郵件體的發(fā)送,本文給出了部分程序代碼。1 : 1 J. Klensin. SMTP Service Extensions.RFC1869, November 1995 2 G. Vaudreuil. SMTP Service Extensions for Transmission of Large an

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論