畢業(yè)設(shè)計答辨電子郵件客戶端軟件的與開發(fā)_第1頁
畢業(yè)設(shè)計答辨電子郵件客戶端軟件的與開發(fā)_第2頁
畢業(yè)設(shè)計答辨電子郵件客戶端軟件的與開發(fā)_第3頁
畢業(yè)設(shè)計答辨電子郵件客戶端軟件的與開發(fā)_第4頁
畢業(yè)設(shè)計答辨電子郵件客戶端軟件的與開發(fā)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

電子郵件客戶端軟件的研究與開發(fā)

1.引言1.1電子郵件簡單介紹 電子郵件(簡稱E-mai1)又稱電子信箱、電子郵政,它是—種用電子手段提供信息交換的通信方式。它是全球多種網(wǎng)絡(luò)上使用最普遍的一項服務(wù)。這種非交互式的通信,加速了信息的交流及數(shù)據(jù)傳送,它是—個簡易、快速的方法。通過連接全世界的Internet,實現(xiàn)各類信號的傳送、接收、存貯等處理,將郵件送到世界的各個角落。到目前為止,可以說電子郵件是Internet資源使用最多的一種服務(wù),E-mai1不只局限于信件的傳遞,還可用來傳遞文件、聲音及圖形、圖像等不同類型的信息。例如比較著名的郵件收發(fā)軟件有系統(tǒng)自帶的OutLook,還有比較著名的第三方軟件FoxMaiL,F(xiàn)astMail等等。1.2開發(fā)背景介紹

當前流行的各大郵件客戶端軟件的除了最主要的收發(fā)信件之外,功能越來越復(fù)雜,但是人們平常真正用到的功能很少,很多功能尤其對于那些計算機知識相對缺乏的人來說,更加顯得太過于華麗而不太實用。有鑒于此,在了解RFC底層協(xié)議的基礎(chǔ)上,我們開發(fā)了這個各種功能相對簡單實用的郵件客戶端程序,簡化了很多不必要的功能。1.3運行環(huán)境及開發(fā)環(huán)境1.3.1開發(fā)環(huán)境AMDAthlon(TM),512M內(nèi)存,80G硬盤Microsoft?Windows?XPProfessionalMicrosoft?VisualStudio2003(CSharp)Microsoft?DeveloperNetworkforVisualStudio.NET20031.3.2運行環(huán)境Intel?Pentium?2及以上處理器,32M以上內(nèi)存,4G以上硬盤Microsoft?Windows?9X/NT操作系統(tǒng)800*600或以上的屏幕分辨率確保機器上安裝有.NetFrameWork1.0或者以上版本

2.軟件架構(gòu)及系統(tǒng)用例圖2.1系統(tǒng)架構(gòu)軟件的總體架構(gòu)如圖2.1:2.2系統(tǒng)總體用例用戶新建賬號發(fā)送郵件接收郵件純文本郵件帶附件郵件2.3程序功能框圖客戶端軟件電子郵件接收系統(tǒng)電子郵件接收系統(tǒng)附加功能各種錯誤的提示簡單郵件接收帶有附件的郵件接收簡單郵件發(fā)送帶有附件的郵件發(fā)送電子郵件編寫電子郵件的分類管理通訊簿管理3SMTP協(xié)議的研究

由于要開發(fā)的是郵件客戶端程序,就不得不用到SMTP協(xié)議和POP協(xié)議。而我個人負責的是郵件發(fā)送功能的實現(xiàn),因此就必然會涉及到SMTP(SimpleMailTransferProtocol)協(xié)議。SMTP被用來在因特網(wǎng)上發(fā)送郵件,該協(xié)議規(guī)定了一些基本的命令和方法使客戶端與服務(wù)器進行交互,以達到發(fā)送郵件的目的。3.1SMTP協(xié)議簡介及工作原理3.1.1介紹簡單郵件傳輸協(xié)議(SMTP)的目標是可靠高效地傳送郵件,它獨立于傳送子系統(tǒng)而且僅要求一條可以保證傳送數(shù)據(jù)單元順序的通道。SMTP的一個重要特點是它能夠在傳送中接力傳送郵件,傳送服務(wù)提供了進程間通信環(huán)境(IPCE),此環(huán)境可以包括一個網(wǎng)絡(luò),幾個網(wǎng)絡(luò)或一個網(wǎng)絡(luò)的子網(wǎng)。理解到傳送系統(tǒng)(或IPCE)不是一對一的是很重要的。進程可能直接和其它進程通過已知的IPCE通信。郵件是一個應(yīng)用程序或進程間通信。郵件可以通過連接在不同IPCE上的進程跨網(wǎng)絡(luò)進行郵件傳送。更特別的是,郵件可以通過不同網(wǎng)絡(luò)上的主機接力式傳送。3.2SMTP協(xié)議的命令和應(yīng)答3.2.1SMTP協(xié)議的命令 SMTP命令定義了郵件傳輸或由用戶定義的系統(tǒng)功能。它的命令是由<CRLF>結(jié)束的字符串。而在帶有參數(shù)的情況下,命令本身由<SP>和參數(shù)分開,如果未帶參數(shù)可以直接和<CRLF>連接。郵箱的語法格式必須和接收站點的格式一致。下面討論SMTP幾個常用的命令和應(yīng)答。下面是SMTP命令:HELO<SP><domain><CRLF>MAIL<SP>FROM:<reverse-path><CRLF>RCPT<SP>TO:<forward-path><CRLF>DATA<CRLF>NOOP<CRLF>QUIT<CRLF>TURN<CRLF>3.2.2SMTP的應(yīng)答碼對SMTP命命令的響應(yīng)是是多樣的,它它確定了在郵郵件傳輸過程程中請求和處處理的同步,,也保證了發(fā)發(fā)送SMTP知道接收SMTP的狀狀態(tài)。每個命命令必須有且且只有一個響響應(yīng)。SMTP響應(yīng)應(yīng)由三位數(shù)字字組成,其后后跟一些文本本。數(shù)字幫助助決定下一個個應(yīng)該進入的的狀態(tài),而文文本對人是有有意義的。三三位的響應(yīng)已已經(jīng)包括了足足夠的信息,,不用再閱讀讀文本,文本本可以直接拋拋棄或者傳遞遞給用戶。特特別的是,文文本是與接收收和環(huán)境相關(guān)關(guān)的,所以每每次接收到的的文本可能不不同。在附錄錄E中可以看看到全部的響響應(yīng)碼。正規(guī)規(guī)的情況下,,響應(yīng)由下面面序列構(gòu)成::三位的數(shù)字字,<SP>,一行文本本和一個<CRLF>,,或者也可以以是一個多行行響應(yīng)。只有有EXPN和和HELP命命令可以導(dǎo)致致多行應(yīng)答,,然而,對所所有命令,多多行響應(yīng)都是是允許的。REPLYCODESBYFUNCTIONGROUPS500格格式錯誤,命命令不可識別別(此錯誤也也包括命令行行過長)501參數(shù)數(shù)格式錯誤502命令令不可實現(xiàn)4命名控件件MailSend由于在CSharp語語言中,都是是以命名控件件來組織程序序的。而所有有的類都歸屬屬于一個特定定的命名空間間下。需要的的命名空間系系統(tǒng)本身自帶帶了一部分,,而且如果系系統(tǒng)沒有你需需要的命名空空間的話,就就可以自己編編寫,本節(jié)中中的這個命名名空間就是由由于需要而編編寫的。而調(diào)調(diào)用某一個類類中的某個變變量成員的方方法就是通過過命名空間間名.類名.變量成員來來訪問的,,當然在CSharp中如果在在程序開始通通過Using命名空空間名,就可可以直接的象象C++那樣樣來訪問成員員變量,可以以說相當?shù)姆椒奖悖@些都都會在程序中中體現(xiàn)出來,,在此不再做做過多的敘述述。4.1發(fā)發(fā)送送郵件類類SmtpMail4.1..1主主要成成員變量量說明1)網(wǎng)網(wǎng)絡(luò)連接接類及實實例TcpClienttc為TCP網(wǎng)網(wǎng)絡(luò)服務(wù)務(wù)提供客客戶端連連接類TcpClient實實例對象象tc。。TcpClient類提提供了一一些簡單單的方法法,用于于在同步步阻塞模模式下通通過網(wǎng)絡(luò)絡(luò)來連接接、發(fā)送送和接收收流數(shù)據(jù)據(jù)。而實實例化的的過程也也是連接接SMTP服務(wù)務(wù)器的過過程。它它的重載載方法之之一的兩兩個參數(shù)數(shù)一個為為服務(wù)器器名稱字字符串,,另一個個為服務(wù)務(wù)器的埠埠。2)提供供用于網(wǎng)網(wǎng)絡(luò)訪問問的基礎(chǔ)礎(chǔ)數(shù)據(jù)流流及其實實例NetworkStreamns此類提供供訪問網(wǎng)網(wǎng)絡(luò)的基基礎(chǔ)數(shù)據(jù)據(jù)流的方方法。其其中最基基本也是是最重要要的兩個個方法就就是Write()和和Read())方法,,至于參參數(shù)不再再次贅述述。3)一維維字符串串數(shù)組變變量FilePath此字符串串數(shù)組主主要用來來存放用用戶選擇擇的附件件的絕對對路徑名名,并在在發(fā)送帶帶附件的的郵件時時用到。。4)發(fā)送送郵件所所需的基基本參數(shù)數(shù)比如用于于ESMTP等等錄檢驗驗用的用用戶名、、密碼,,發(fā)送郵郵件需要要的收信信人,發(fā)發(fā)信人地地址以及及主題等等等在此此不再贅贅述。4.1..2主主要成成員函數(shù)數(shù)說明1)重載載的構(gòu)造造函數(shù)SmtpMail(()此函數(shù)主主要用于于在初始始化過程程中,把把用戶選選擇的附附件的路路徑以參參數(shù)的形形式傳給給FilePath。。2)添加加附件的的函數(shù)AddAttachment傳給FilePath的路徑徑,通過過這樣一一個函數(shù)數(shù)就可以以循環(huán)的的動態(tài)的的添加到到IList接接口的一一個對象象中了,,方便以以后在具具體的實實現(xiàn)的過過程中的的使用。。3)得到到上傳的的附件的的文件流流 GetStream由于在網(wǎng)網(wǎng)絡(luò)中的的操作都都是以網(wǎng)網(wǎng)絡(luò)流的的形式來來實現(xiàn)的的,因此此先將上上傳的附附件轉(zhuǎn)換換成文件件流,然然后再用用Write的的方法把把這些附附件的文文件流寫寫入到網(wǎng)網(wǎng)絡(luò)中,,來完成成發(fā)送附附件的操操作。4)將字符符串編碼為為Base64字符符串的函數(shù)數(shù) Base64Encode由于ESMTP的LOGIN認證機制制是采用Base64編碼,,當用戶發(fā)發(fā)出AUTHLOGIN的命命令后,服服務(wù)器返回回334的的應(yīng)答碼等等待用戶輸輸入。如果果身份確認認后服務(wù)器器返回235的應(yīng)答答碼,否則則返回失敗敗信息。所所以要將用用戶名和密密碼轉(zhuǎn)換成成Base64編碼碼然后再發(fā)發(fā)給服務(wù)器器。此函數(shù)數(shù)的作用就就是把給定定的字符串串轉(zhuǎn)換成相相應(yīng)的Base64編碼的字字符串。5) 發(fā)送送SMTP命令的函函數(shù) SendCommand這個函數(shù)的的作用是把把SMTP命令的字字符串轉(zhuǎn)換換成對應(yīng)的的字節(jié)型值值(C#中中規(guī)定的Write方法只能能寫入字節(jié)節(jié)型的數(shù)據(jù)據(jù))然后寫寫入網(wǎng)絡(luò)中中,如果操操作成功就就返回一個個標志為真真的布爾型型變量,如如果操作失失敗或者發(fā)發(fā)生異常就就返回標志志為假的布布爾型變量量6)接受服務(wù)器器應(yīng)答的函函數(shù) RecvResponse它的作用就就是從網(wǎng)絡(luò)絡(luò)流中讀取取服務(wù)器返返回的字節(jié)節(jié)型的信息息,將其轉(zhuǎn)轉(zhuǎn)換成字符符串型的變變量,然后后將其返回回,可以通通過其返回回值來判斷斷操作是否否成功。具具體實現(xiàn)代代碼如下所所示:7)重載載的函數(shù)Dialog它們的作用用是與服務(wù)務(wù)器交互,,發(fā)送命令令并接收回回應(yīng)。不同同的是參數(shù)數(shù)是字符串串類型的那那個函數(shù),,每次發(fā)送送一條命令令,并接受受服務(wù)器的的響應(yīng),根根據(jù)響應(yīng)的的信息來判判斷交互的的結(jié)果是否否成功。而而參數(shù)是字字符串數(shù)組組的函數(shù)每每次發(fā)送的的是一組命命令,用于于和服務(wù)器器的交互,,這個函數(shù)數(shù)主要是用用于ESMTP服務(wù)務(wù)器的驗證證的功能,,因為驗證證的過程是是一個等待待然后又輸輸入的過程程,因此將將他們放在在一個數(shù)組組中有利于于理解和操操作。而他他們的實現(xiàn)現(xiàn)主要是通通過調(diào)用上上面的發(fā)送送SMTP命令函數(shù)數(shù)SendCommand以以及接受SMTP服服務(wù)器響應(yīng)應(yīng)的函數(shù)RecvResponse來來實現(xiàn)的。。具體的代代碼如下所所示:8)郵郵件發(fā)送送程序SendMail這是整個個程序的的核心部部分。具具體的實實現(xiàn)SMTP協(xié)協(xié)議的程程序正是是通過它它一步一一步實現(xiàn)現(xiàn)并最終終實現(xiàn)發(fā)發(fā)送簡單單郵件甚甚至帶附附件的郵郵件的功功能。而而它的實實現(xiàn)是調(diào)調(diào)用以上上給出的的各個函函數(shù)的結(jié)結(jié)果。以以下就簡簡單的通通過幾個個SMTP命令令的格式式來實現(xiàn)現(xiàn)privateboolSendEmail(){//連接接網(wǎng)絡(luò)try{//建立立一個TCP連連接tc=newTcpClient(mailserver,mailserverport);}catch{MessageBox.Show("連連接失敗敗","請確認認");returnfalse;}//獲取取當前流流的資料料ns=tc.GetStream();SMTPCodeAdd();//驗證證網(wǎng)絡(luò)連連接是否否正確if(RightCodeHT[RecvResponse().Substring(0,3)]==null){returnfalse;}string[]SendBuffer;if(ESmtp){SendBuffer=newString[4];SendBuffer[0]="EHLO"+mailserver+enter;SendBuffer[1]="AUTHLOGIN"+enter;SendBuffer[2]=Base64Encode(username)+enter;SendBuffer[3]=Base64Encode(password)+enter;if(!Dialog(SendBuffer,"SMTP服服務(wù)器驗驗證失敗敗,請核核對用戶戶名和密密碼。"))returnfalse;}else{SendBufferstr="HELO"+mailserver+enter;if(!Dialog(SendBufferstr,""))returnfalse;}SendBufferstr="MAILFROM:<"+From+">"+enter;if(!Dialog(SendBufferstr,"發(fā)件件人地址址錯誤,,或不能能為空"))returnfalse;//把傳傳過來的的收件人人的地址址分割然然后提交交給服務(wù)務(wù)器stringsplit=";";string[]address=Regex.Split(Recipient,split);SendBuffer=newstring[address.Length];for(inti=0;i<SendBuffer.Length;i++){SendBuffer[i]="RCPTTO:<"+address[i]+">"+enter;}if(!Dialog(SendBuffer,"收收件件人人地地址址有有誤誤"))returnfalse;SendBufferstr="DATA"+enter;if(!Dialog(SendBufferstr,""))returnfalse;SendBufferstr="From:"+FromName+"<"+From+">"+enter;SendBufferstr+=enter+"."+enter;if(!Dialog(SendBufferstr,"錯錯誤誤信信件件信信息息"))returnfalse;SendBufferstr="QUIT"+enter;if(!Dialog(SendBufferstr,"斷開連連接時錯誤誤"))returnfalse;//關(guān)閉流流對象ns.Close();//關(guān)閉連連接tc.Close();FilePath=null;returntrue;}4.2AddExtra類這個附加的的小類只是是提供一些些返回當前前系統(tǒng)時間間,獲取主主機名,主主機IP,,有關(guān)幫助助等小的功功能,在此此僅對幫助助信息中的的“關(guān)于””操作函數(shù)數(shù)稍加說明明。因為它它說明了在在CSharp中中調(diào)用WindowsAPI函函數(shù)所需需如下幾個個步驟:4.2.1調(diào)用用WindowsAPI所所需的命命名空間----usingSystem.Runtime.InteropServices;而調(diào)用顯示示關(guān)于對話話框的函數(shù)數(shù)ShellAbout還需需要用到兩兩個命名空空間如下所所示---usingSystem.Reflection;---usingSystem.Diagnostics;4.2.2在程程序中聲明明所需的API函數(shù)數(shù)[DllImport("shell32.dll")]staticexternintShellAbout(IntPtrhWnd,stringszApp,stringszOtherStuff,IntPtrhIcon);4.2.3在程程序中具體體的使用Assemblyass=Assembly.GetExecutingAssembly();FileVersionInfomyVersion=FileVersionInfo.GetVersionInfo(ass.Location);ShellAbout(this.Handle,"郵件收發(fā)發(fā)系統(tǒng)#","版本本"+myVersion.FileMajorPart+"."+myVersion.FileMinorPart+"."+myVersion.CompanyName,this.Icon.Handle);至此此就就完完成成了了在在CSharp中中調(diào)調(diào)用用WindowsAPI函函數(shù)數(shù)的的過過程程。。而在在此此程程序序中中最最主主要要的的調(diào)調(diào)用用了了兩兩個個WINDOWSAPI函函數(shù)數(shù),,一一個個就是是動動態(tài)態(tài)的的獲獲取取圖圖標標句句柄柄的的函函數(shù)數(shù)SHGetFileInfo()和和動動態(tài)態(tài)調(diào)調(diào)用用相關(guān)關(guān)聯(lián)聯(lián)的的打打開開指指定定程程序序的的函函數(shù)數(shù)ShellExecute().下下面面章章節(jié)節(jié)將將對對這這兩個個函函數(shù)數(shù)進進行行完完全全的的用用法法解解析析。。4.3程程序序用用到到的的主主要要API函函數(shù)數(shù)完完全全解解析析SHGetFileInfo用法完全全解析一.函數(shù)名名:SHGetFileInfo二.作用::動態(tài)的獲取取圖標的句句柄三.在C#中的聲明明方式:[DllImport(“shell32.dll”)]PrivatestaticexternintShGetFileInfo(stringpszPath,uintdwAttributes,refSHFILEINFOpsi,uintcbFileInfo,uintflags);四.各個參參數(shù)的解析析:1.pszPath-指定的的文件名((可以是絕絕對的路徑徑,也可以以是相對的的路徑)。。當uFlags的取取值中不包包含SHGFI_PIDL時,可直直接指定;;否則pszPath要要通過計算算獲得,不不能直接指指定;2.dwFileAttributes-文件件屬性。僅當uFlags的的取值包含含SHGFI_USEFILEATTRIBUTES時時有有效,,一般不用用此參數(shù)。。3.psfi-返回回獲取的文文件的信息息。是一個個結(jié)構(gòu)體類類型的變量量。它的原原型如下所所示:privatestructSHFILEINFO{publicIntPtrhIcon;publicintiIcon;publicuintdwAttributes;[MarshalAs(UnmanagedType.LPStr,SizeConst=256)]publicstringszDisplayName;[MarshalAs(UnmanagedType.LPStr,SizeConst=80)]publicstringszTypeName;};各個參數(shù)代代表的含義義:1)hIcon-文件的的圖標句柄柄。2)iIcon-圖標的的系統(tǒng)索引引號。3)dwAttributes--文件的屬屬性值。4)szDisplayName-文件的的顯示名((名稱的最最大長度))。5)szTypeName-文件件的類型名名(最大長長度默認認是80個個字符)。。4.cbFileInfo--psfi的字節(jié)數(shù)數(shù)。5.uFlags--指明需要要返回的文文件信息標標識符。常用的是::SHGFI_ICON;//獲得圖圖標

SHGFI_DISPLAYNAME;//獲獲得顯示名名

SHGFI_TYPENAME;//獲獲得類型名名

SHGFI_ATTRIBUTES;//獲得屬性性

SHGFI_LARGEICON;//獲得大圖圖標

SHGFI_SMALLICON;//獲得小小圖標SHGFI_PIDL;//pszPath是一個標標識符五.補充說說明:函數(shù)SHGetFileInfo()的返回值值也隨uFlags的取值變變化而有所所不同。通通過調(diào)用SHGetFileInfo()可以以由psfi參數(shù)得得到文件的的圖標句柄柄,但要注注意在uFlags參數(shù)中不不使用SHGFI_PIDL時,SHGetFileInfo()不能獲獲得"我的的電腦"等等虛似文件件夾的信息息。ShellExecute用用法完全解解析一.函數(shù)名名:ShellExecute二.作用::ShellExecute不不僅可以運運行EXE文件,也也可以運行行已經(jīng)關(guān)聯(lián)聯(lián)的文件件。三.在C#中的聲明明://EntryPoint給給出Dll入口點點的名稱,,如果沒有有給出,則則用方法本本身的名稱稱。[DllImport("shell32.dll",EntryPoint="SHGetFileInfo")]privatestaticexternintShellExecute(IntPtrhwnd,stringOperation,stringFileName,stringParameters,stringDirectory,intShowCmd);四.各個參參數(shù)解析::●hWnd:用于指指定父窗口口句柄。當當函數(shù)調(diào)用用過程出現(xiàn)現(xiàn)錯誤時,,它將作為為Windows消消息窗口的的父窗口。。例如,可可以將其設(shè)設(shè)置為應(yīng)用用程序主窗窗口句柄,,即Application.Handle,,也可以將將其設(shè)置為為桌面窗口口句柄(用用GetDesktopWindow函數(shù)獲得得)?!馩peration:用于于指定要進進行的操作作。其中““open”操作表表示執(zhí)行由由FileName參數(shù)指定定的程序,,或打開由由FileName參數(shù)指定定的文件或或文件夾;;“print”操操作表示打打印由FileName參數(shù)數(shù)指定的文文件;“explore”操操作表示瀏瀏覽由FileName參數(shù)數(shù)指定的文文件夾。當當參數(shù)設(shè)為為nil時時,表示執(zhí)執(zhí)行默認操操作“open”。?!馞ileName::用于指指定要打打開的文文件名、、要執(zhí)行行的程序序文件名名或要瀏瀏覽的文文件夾名名。●Parameters:若若FileName參參數(shù)是一一個可執(zhí)執(zhí)行程序序,則此此參數(shù)指指定命令令行參數(shù)數(shù),否則則此參數(shù)數(shù)應(yīng)為nil或或PChar(0)。?!馜irectory:用于于指定默默認目錄錄?!馭howCmd:若若FileName參參數(shù)是一一個可執(zhí)執(zhí)行程序序,則此此參數(shù)指指定程序序窗口的的初始顯顯示方式式,否則則此參數(shù)數(shù)應(yīng)設(shè)置置為0。。若ShellExecute函數(shù)調(diào)調(diào)用成功功,則返返回值為為被執(zhí)行行程序的的實例句句柄。若若返回值值小于32,則則表示出出現(xiàn)錯誤誤。五.補充充說明上述僅僅僅是ShellExecute函數(shù)數(shù)的標準準用法5.軟件件運行界界面5..1新新建建郵郵件件帳帳號號用戶戶打打開開軟軟件件之之后后,,需需要要新新建建一一個個郵郵件件帳帳號號,,在在這這個個信信件件帳帳號號的的過過程程中中,,需需要要指指定定SMTP服服務(wù)務(wù)器器,,SMTP的的端端口口,,以以及及用用于于ESMTP驗驗證證的的用用戶戶名名和和密密碼碼。。指指定定這這些些發(fā)發(fā)郵郵件件的的必必須須參參數(shù)數(shù)之之后后,,再再回回到到系系統(tǒng)統(tǒng)的的主主界界面面如如下下所所示示::5..2發(fā)發(fā)送送郵郵件件界界面面5..2..1發(fā)發(fā)送送不不帶帶附附件件的的郵郵件件在新新建建帳帳號號的的過過程程中中已已經(jīng)經(jīng)指指定定了了郵郵件件地地址址,,和和帳帳號號名名稱稱,,所所以以默默認認的的以以這這些些參參數(shù)數(shù)來來發(fā)發(fā)送送郵郵件件。。通通過過調(diào)調(diào)用用參參數(shù)數(shù)的的不不同同程程序序會會自自動動的的調(diào)調(diào)用用相相對對應(yīng)應(yīng)的的代代碼碼來來執(zhí)執(zhí)行行不不同同的的操操作作。。發(fā)發(fā)送送簡簡單單的的郵郵件件運運行行界界面面如如下下。。5.2.2發(fā)發(fā)送送帶附附件的的郵件件和簡單單的郵郵件不不同之之處在在于多多了發(fā)發(fā)送附附件的的功能能,軟軟件模模擬FoxMail里面面發(fā)送送郵件件時,,在程程序的的下面面自動動顯示示增添添的附附件的的名稱稱,以以及圖圖標等等信息息。并并且郵郵件支支持添添加,,刪除除,排排列圖圖標等等功能能。運運行行界面面如下下所示示:5.3驗驗證證郵件件發(fā)送送是否否成功功郵件發(fā)發(fā)送出出去之之后,,用FoxMail跟蹤蹤接受受之后后的,,證明明郵件件和附附件都都可以以正常常接收收,具具體的的FoxMail的的接收收界面面如下下所示示:6結(jié)結(jié)論

溫馨提示

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

評論

0/150

提交評論