ASP.NET基于Web Mail收發(fā)系統(tǒng)設計與開發(fā)(源代碼+論文)
ASP.NET基于Web Mail收發(fā)系統(tǒng)設計與開發(fā)(源代碼+論文),ASP.NET基于Web,Mail收發(fā)系統(tǒng)設計與開發(fā)(源代碼+論文),ASP,NET,基于,Web,Mail,收發(fā),系統(tǒng),設計,開發(fā),源代碼,論文
分類號:分類號:TP311.1TP311.1 U U D D C C:D10621-408-(2007)D10621-408-(2007)60116011-0-0密密 級:公級:公 開開 編編 號:號:20032150062003215006成成 都都 信信 息息 工工 程程 學學 院院學學 位位 論論 文文WebWeb MailMail 收發(fā)系統(tǒng)設計與開發(fā)收發(fā)系統(tǒng)設計與開發(fā)論論文作者姓名:文作者姓名:葉葉 科科申申請請學位學位專業(yè)專業(yè): :網(wǎng)網(wǎng) 絡絡 工工 程程申申請請學位學位類別類別: :工工 學學 學學 士士指指導導教教師師姓姓名名( (職職稱稱) ): :李李 誼誼 瑞瑞(研究研究員員)論論文提交日期:文提交日期:2007 年年 6 月月 10 日日WebWeb MailMail 收發(fā)系統(tǒng)設計與開發(fā)收發(fā)系統(tǒng)設計與開發(fā)摘摘 要要互聯(lián)網(wǎng)絡技術的不斷發(fā)展,電子郵件服務已經(jīng)成為人們基本的信息交互手段,也是網(wǎng)絡服務中最早和最基本的服務之一。傳統(tǒng)郵件系統(tǒng)大多是基于 C/S結構,如 Lotus notes、Microsoft Exchange Server 等,這些郵件系統(tǒng)占用相對較多的服務器資源,對服務器性能有更高的要求,同時也增加了管理負擔。并且,由于不同服務器需要特定的客戶端軟件,增加了系統(tǒng)的開發(fā)和管理成本。基于 Web 的郵件服務提供了更快捷、高效的服務,使得新一代的 Web Mail能解決傳統(tǒng)郵件的不足之處。本文設計并實現(xiàn)的郵件收發(fā)系統(tǒng)基于 B/S 模式,以組件技術為基礎,利用 System.Web.Mail 命名空間構造函數(shù),分別調(diào)用Mailmessage,Mailattachment 和 SMTPmail 方法,實現(xiàn)以 Web 網(wǎng)頁的形式收發(fā)電子郵件,用戶只需要通過 Web 頁面就可以實現(xiàn)帶附件郵件的發(fā)送。本論文分為四個部分,分別是:一、選題意義及系統(tǒng)構成;二、介紹郵件收發(fā)系統(tǒng)的工作原理、優(yōu)缺點及開發(fā)環(huán)境;三、程序編碼及頁面設計; 四、對Web 郵件系統(tǒng)進行測試并獲得測試的結果。關鍵詞:關鍵詞: Web Mail;ASP;SMTP 協(xié)議;POP 協(xié)議Design and Implement of Web Mail SystemAbstractWith the development of the Internet technology, mail service has been a basic mean of information communication, which is also one of the earliest and the most basic services of the Internet. However, traditional mail services is based on client and server, for example, Lotus notes, Microsoft Exchange Server, which have used more resources of the server, thus, affect the capability of server and need high performance of server. Meanwhile, each server needs special client, which increases the cost of developing and managing the system. Based on Web mail server system provides faster, more efficient Web mail services, with the strong capability, the new generation of the Web mail can change the disadvantage of the traditional mail. This paper designs and implements a Web mail receiving-sending system, which is based on browser and server as well as components technology, sending mails through Web and users can use it to send mails with attachments.This paper is divided into four main modules, respectively are First, introduction the background of the selecting the topic as well as the constitution of the system; Second, introduction of work principle, superiors and inferiors and the developing environment of the mail sending-receiving system; Third, introduction of the code procedures and design of the Web page; Last, test of the mail system and the result of the test. Key words: Web Mail; ASP; SMTP protocol; POP3 protocol目目 錄錄論文總頁數(shù):17 頁1 引言.11.1選題意義.11.2基于 C/S 模式郵件的運行機理.11.3郵件的發(fā)送和 SMTP 服務器.21.4郵件協(xié)議及原理.21.5SMTP 簡介.31.6SMTP 的運行過程.41.7SMTP 中繼服務的設置.42總體分析.42.1工作原理.42.1.1單域網(wǎng)絡下的單 Web 郵件服務器系統(tǒng).42.1.2多域網(wǎng)絡下的單 Web 郵件服務器系統(tǒng).52.1.3多域網(wǎng)絡下的多 Web 郵件服務器系統(tǒng).52.1.4將內(nèi)部網(wǎng)絡的電子郵件發(fā)送 Internet.52.2IIS WEB 郵件發(fā)送的特點.52.3IIS WEB 郵件發(fā)送的不足.62.4IIS WEB 環(huán)境建立.62.5開發(fā)環(huán)境.63程序的設計與實現(xiàn).63.1SYSTEM.WEB.MAIL 命名空間介紹.63.2程序設計主要步驟.73.3界面設計.73.4主要代碼.124軟件測試.14結 論.15參考文獻.15致 謝.16聲 明.17第 1 頁 共 17 頁1 1 引言引言隨著互聯(lián)網(wǎng)技術的迅猛發(fā)展,Web Mail 系統(tǒng)的應用已經(jīng)成為非常流行、方便、快捷的通信方式。傳統(tǒng)的基于 C/S 模式郵件系統(tǒng)由發(fā)送系統(tǒng)和接收系統(tǒng)組成,發(fā)送部分負責從郵件從客戶端接收到服務器,從郵件服務器發(fā)送到另一個郵件服務器。接收部分負責把郵件從服務器上接收下來,使用特定的客戶端郵件收發(fā)程序。雖然已經(jīng)使得人們感到滿足,但是由于傳統(tǒng)郵件開發(fā)的難度很大,只有經(jīng)過專業(yè)學習的程序員才能去設計開發(fā),有一定的不足之處。Microsoft 公司開發(fā)的.NET 強大平臺,為廣大的程序開發(fā)人員提供了更多更豐富的組件。IIS(Internet Information Server)對基于 NT 技術構架的站點來說,是主要的 Web 服務器。ASP(Active Server Pages)與 IIS 相結合是微軟推出的完整的 Internet 解決方案,同時 ASP 技術就是以組件對象模型(COM, Componet Object Model)為基礎的。ASP 之所以很流行,很大程度得益于 IIS增加了許多新的功能,其中的 IIS SMTP 服務器組件提供了便捷高效的 Web 郵件服務。ASP 與.NET 平臺結合,配合.NET 平臺具有發(fā)送郵件功能的命名空間System.Web.Mail,使得郵件收發(fā)程序的開發(fā)簡化了許多。因此,本設計在腳本中調(diào)用.NET 框架中 System.Web.Mail 命名空間,結合HTML 完成郵件發(fā)送的開發(fā)與設計實現(xiàn)。1.11.1 選題意義選題意義在今天的信息社會中,電子郵件已逐漸成為重要的通訊工具,它在諸如通知、廣播和警報系統(tǒng)的應用中起著關鍵角色的作用。Web 方式下的郵件發(fā)送,比手工打開 Outlook,手工鍵入相關的信息來發(fā)送郵件的方式更優(yōu)越。舉一個極端的例子,在某些系統(tǒng)的應用中,我們可以讓電子郵件自動的產(chǎn)生,自動的發(fā)送,收件都可以為某個人,也可以為符合條件的從數(shù)據(jù)庫里查詢出來的一批人。試想,如果這樣的工作手工來做的話,不僅費時而且費力,甚至會出現(xiàn)誤寄的問題,因而效率不高。Web 方式下的郵件發(fā)送的優(yōu)越之處,在于其發(fā)送效率高,發(fā)件人手工寫的內(nèi)容少,既省時又準確。1.21.2 基于基于 C/SC/S 模式郵件的運行機理模式郵件的運行機理基于 C/S 的郵件運行模式是典型的傳統(tǒng)郵件工作方式,發(fā)送郵件將郵件從客戶端發(fā)送到對應的服務器端,接收郵件又從郵件服務器把郵件下載下來,進行離線閱讀等操作。這種模式下用戶只能使用特定的客戶端來進行郵件的發(fā)送的接收。如圖 1第 2 頁 共 17 頁 發(fā)送郵件 接收郵件 圖 1 基于 C/S 模式的郵件運行機理1.31.3 郵件的發(fā)送和郵件的發(fā)送和 SMTPSMTP 服務器服務器郵件的發(fā)送過程是從像 outlook 這樣的客戶端將一封電子郵件發(fā)給一個SMTP 服務器開始的。一個客戶端只知道一個與之相連的 SMTP 服務器,所以本地客戶端發(fā)出的全部郵件,不管其目的地地址是哪里,都將發(fā)送到同一個服務器,然后本地 SMTP 服務器負責決定如何處置該郵件。如果目的地址就是本地域的 SMTP 服務器,郵件就會一直被存放在本地 SMTP 服務器,郵件就會一直被放在本地的 SMTP 服務器的郵件庫中,直到收件人訪問服務器上自己的郵件;如果郵件的目的地址是另一個遠程域的 SMTP 服務器,SMTP 服務器就查詢DNS Mail Exchange-MX 記錄,該記錄為進入相應域的所有郵件提供 SMTP 服務器的 IP 地址,在找到該地址后,本地的 SMTP 服務器就會把郵件從本地郵件庫發(fā)送到該地址的 SMTP 服務器上。所以在這種情況下,郵件先從用戶的發(fā)送到本地 SMTP 服務器,再從本地 SMTP 發(fā)送到目的域的 SMTP 服務器。1.41.4 郵件協(xié)議及原理郵件協(xié)議及原理郵件協(xié)議是指可以通過哪種方式進行電子郵件的收發(fā),它們?yōu)猷]件的發(fā)送和接收提供標準。常用的郵件協(xié)議有 IMAP、SMTP、POP3 等 IMAP 是 Internet Message Access Protocol 的縮寫,顧名思義,主要提供的是通過 Internet 獲取信息的一種協(xié)議。IMAP 象 POP 那樣提供了方便的郵件下載服務,讓用戶能進行離線閱讀,但 IMAP 能完成的卻遠遠不只這些。IMAP提供的摘要瀏覽功能可以讓你在閱讀完所有的郵件到達時間、主題、發(fā)件人、大小等信息后才作出是否下載的決定。POP 的全稱是 Post Office Protocol ,即郵局協(xié)議,用于電子郵件的接收,它使用 TCP 的 110 端口,現(xiàn)在常用的是第三版 ,所以簡稱為 POP3。POP3 仍采用 Client/Server 工作模式, 。當客戶機需要服務時,客戶端的軟件(如Outlook Express 或 Fox Mail)將與 POP3 服務器建立 TCP 連接,此后要經(jīng)過POP3 協(xié)議的三種工作狀態(tài),首先是認證過程,確認客戶機提供的用戶名和密碼,在認證通過后便轉入處理狀態(tài),在此狀態(tài)下用戶可收取自己的郵件或做郵件的刪除,在完成響應的操作后客戶機便發(fā)出 quit 命令,此后便進入更新狀態(tài),將郵件客戶端程序(C)郵件服務器(S)SMTPPop3第 3 頁 共 17 頁做刪除標記的郵件從服務器端刪除掉。到此為止整個 POP 過程完成。SMTP 稱為簡單 Mail 傳輸協(xié)議(Simple Mail Transfer Protocal),目標是向用戶提供高效、可靠的郵件傳輸。SMTP 的一個重要特點是它能夠在傳送中接力傳送郵件,即郵 件可以通過不同網(wǎng)絡上的主機接力式傳送。工作在兩種情況下:一是電子郵件從客戶機傳輸?shù)椒掌?;二是從某一個服務器傳輸?shù)搅硪粋€服務器。SMTP 是個請求/響應協(xié)議,它監(jiān)聽 25 號端口,用于接收用戶的 Mail請求,并與遠端 Mail 服務器建立 SMTP 連接?;?B/S 工作方式的 IIS WEB MAIL 僅為全部郵件設立一個目錄,客戶端可以通過直接訪問或者 POP3 服務器方式。如圖 2 發(fā)送郵件 互相發(fā)送郵件 接收郵件(其它組件方式)圖 2 WEB MAIL 郵件的運行機理SMTP 協(xié)議只負責郵件從客戶端發(fā)送到目的域的 SMTP 服務器,用戶要從服務器接收郵件,服務器端還必須提供郵件接收服務,而 POP3 就是用戶接收他們郵件的協(xié)議,POP3 服務器負責郵件的接收。 POP3 服務器在服務器上一直運行,等待來自客戶端的連接。當客戶端試圖連接到 POP3 服務器時,服務器用郵件帳號的用戶名和密碼來區(qū)分用戶,郵件服務器驗證用戶身份后,POP3 服務器就將該用戶的郵件從 SMTP 郵件庫發(fā)送到用戶的收件箱。SMTP 服務器一般為每個用戶設立了一個目錄,它類似于用戶的郵件箱。這種目錄結構使得 POP3 服務器可以高效的取出指定用戶的全部郵件。1.51.5 SMTPSMTP 簡介簡介目前在 Internet 上廣泛采用的網(wǎng)絡互連協(xié)議是 TCP/IP 協(xié)議族,該協(xié)議族的是為最大范圍的計算機系統(tǒng)和網(wǎng)絡提供互操作性。針對電子郵件服務,為擴展電子郵件的互操作性,TCP/IP 協(xié)議族也規(guī)定了郵件傳輸協(xié)議,目前采用的是簡單郵件傳輸協(xié)議 SMTP。它作為 TCP/IP 協(xié)議族的一部分,規(guī)定了計算機間交換電子郵件時的一些細節(jié),主要是一些控制信息,包括對正確連接的校驗、發(fā)送者的標識、傳輸參數(shù)的商定及郵件的傳輸。SMTP 中定義了命令以及命令的響應??蛻魴C向服務器發(fā)送命令,并根據(jù)服務器回送的響應進行一下步的工作??蛻舳藶g覽器(B)郵件服務器(S)ASPSystem.Web.Mail遠程郵件服務器(S)第 4 頁 共 17 頁兩者之間相互配合,實現(xiàn)郵件的傳送。1.61.6 SMTP 的運行過程的運行過程 SMTP 的運行只需要一個可行的有序數(shù)據(jù)流傳輸通道,即 TCP 連接,這種連接可以跨越若干網(wǎng)絡,以中繼的方式傳輸,在不同的傳輸系統(tǒng)上的主機之間傳輸電子郵件。 當客戶端提出發(fā)送電子郵件的請示時,將依次發(fā)生下面的事件:SMTP 發(fā)送端建立一個到達接收端 SMTP 的雙向信息傳輸通道,接收端 SMTP 既可以是最終目的地,也可以是中轉目的地;1、SMTP 發(fā)送發(fā)送一個 Mail 命令,指明電子郵件的發(fā)送方;2、如果 SMTP 接收端能夠接受該電子郵件,那么它就發(fā)出一個 OK 答復消息;3、SMTP 發(fā)送端發(fā)送一個 RCPT 命令,指明郵件的收件人;4、如果 SMTP 接收端能夠為該收件人接收郵件,它就發(fā)出一個 OK 答復,如果不能,就發(fā)出一個拒絕為該收件人接受郵件的答復消息;5、當協(xié)商確定了收件人后,SMTP 發(fā)送端便開始發(fā)送郵件數(shù)據(jù);6、如果 SMTP 接收端成功地處理了郵件數(shù)據(jù),它就發(fā)出一個 ok 答復消息;最后,SMTP 運行,完成后斷開 TCP 連接。郵于 SMTP 協(xié)議的通訊指令已經(jīng)被封裝進 System.Web.Mail 命名空間中的類,在程序中只用一句 stmpmail.send(email)即可完成郵件發(fā)送,封裝后并未體現(xiàn)上述的 SMTP 運行過程。1.71.7 SMTPSMTP 中繼服務的設置中繼服務的設置該畢業(yè)設計是使用 Windows 2003 Server 系統(tǒng)內(nèi)置的 SMTP 郵件服務來進行郵件發(fā)送的,幫在程序中未設 SMTPmail 屬性,SMTPServer 設置為 localhost,這樣可以獲得快的郵件發(fā)送速度。當然也可以設置因特網(wǎng)上提供了 SMTP 服務器的郵件服務器,但需要滿足一定的條件,如下:1、現(xiàn)在多數(shù)的免費郵件提供商都不再對所有郵件提供 SMTP 服務,需要驗證用戶身份,在程序中需要考慮用戶身份驗證的問題;2、若通過這種方式發(fā)送過多的郵件,可能被誤認為是垃圾郵件而被拒絕服務。2 2總體分析總體分析2.12.1 工作原理工作原理2.1.12.1.1 單域網(wǎng)絡下的單單域網(wǎng)絡下的單 Web 郵件服務器系統(tǒng)郵件服務器系統(tǒng)這種情況只適用于小型網(wǎng)絡,只要在該域的任何一臺服務器上建立了 Web郵件站點,該域的所有用戶都可以通過瀏覽器使用其 Web 郵件服務。第 5 頁 共 17 頁2.1.22.1.2 多域網(wǎng)絡下的單多域網(wǎng)絡下的單 WebWeb 郵件服務器系統(tǒng)郵件服務器系統(tǒng)這種情況適用于中型規(guī)模的網(wǎng)絡。如果多域網(wǎng)絡各個域之間已經(jīng)通過路由設備連通,那么只要在該網(wǎng)絡的任何一個域的任何一個服務器上建立了 Web 郵件服務站點,全網(wǎng)絡的所有用戶都可以使用 Web 郵件服務。這時,所有的域的用戶的郵件地址的域名部分都相同,都是 Web 郵件服務站點所在的域的域名。如果要讓每個域的用戶的郵件地址用自己所在的域名,就必須在 IIS 管理控制臺的 SMTP 服務器上添加其它各個域的域名,同時把這些新添加的域設置為本地域,所有的域名都自動成為的本地域的別名。但這對用戶是透明的,在用戶看來他們使用的就是他們所在域的郵件服務器。2.1.32.1.3 多域網(wǎng)絡下的多多域網(wǎng)絡下的多 WebWeb 郵件服務器系統(tǒng)郵件服務器系統(tǒng)這種系統(tǒng)適用大型、物理分散的網(wǎng)絡系統(tǒng)。在這類網(wǎng)絡中,或者用戶規(guī)模龐大,或者域之間的連接速度太慢,如果所有的用戶都使用同一個 Web 郵件服務器勢必對服務器有更高的要求;對于物理分散的網(wǎng)絡,在多 Web 郵件系統(tǒng)下,用戶可以就近服務,節(jié)約了寶貴的帶寬資源,對通過低速停產(chǎn)連接的兩個較大的域尤其重要。在多 Web 郵件服務器系統(tǒng)中,在每個 SMTP 服務器上必須添加所有其它SMTP 服務所在的域,并把它們設置為遠程域,而且各 SMTP 服務器設置為允許相互轉發(fā)郵件。這樣各個域的用戶就可以相互發(fā)送電子郵件了。2.1.42.1.4 將內(nèi)部網(wǎng)絡的電子郵件發(fā)送將內(nèi)部網(wǎng)絡的電子郵件發(fā)送 InternetInternet在能夠把電子郵件發(fā)送到 Internet 之前,內(nèi)部網(wǎng)絡必須直接或通過代理服務器接入 Internet;之后,在 IIS SMTP 服務器上設置郵件網(wǎng)絡為智能主機。所有外出的郵件不需要查找郵件目的域的 MX 記錄,都直接發(fā)送到郵件網(wǎng)關而不是本地 SMTP 服務器;郵件再從郵件網(wǎng)關被發(fā)送到目的 Internet 域。2.22.2 IISIIS WebWeb 郵件發(fā)送的特點郵件發(fā)送的特點IIS 新增加的一系統(tǒng)功能組件, 不但加強了 Web 服務和事務處理能力,更增加了新聞、搜索服務和郵件服務等功能。IIS SMTP 服務器是 IIS 的一體信息服務解決方案的重要組成部分,用其構建的 Web 郵件系統(tǒng)有以下特點:1、IIS 的 SMTP 服務是 IIS 的一個組件,它與 IIS 緊密連接在一起。實質(zhì)上,IIS 本身就是郵件服務器,只不過這種方式下郵件服務集成于 IIS 和操作系統(tǒng),提高了郵件服務的效率和系統(tǒng)的穩(wěn)定性。2、減少了系統(tǒng)的復雜性和管理負擔。只需要在安裝配置 IIS 的時候選中SMTP 郵件服務組件,就可以在系統(tǒng)建立郵件服務。如果使用特定的郵件服務系統(tǒng),服務器就不得不運行另一套系統(tǒng),占用額外的服務器資源,第 6 頁 共 17 頁而 IIS Web 郵件系統(tǒng)則減小了系統(tǒng)的復雜性和系統(tǒng)管理員的負擔。3、容易實現(xiàn),構造成本低。使用 SMTP 服務器組件可以輕松建立起 Web 郵件服務,用戶不需要安裝任何郵件客戶端軟件,只要一個 Web 瀏覽器即可。而其它的郵件系統(tǒng),每個用戶必需安裝特定的客戶端郵件軟件,增加了實現(xiàn)的難度,也提高了系統(tǒng)構造成本和費用。4、IIS Web 郵件系統(tǒng)提供簡單方便的郵件服務??蛻敉ㄟ^ Web 瀏覽器就可以實現(xiàn)用戶主動注冊郵件帳號和郵件的收發(fā),也可以郵件中插入附件,同時,用戶也可以使用客戶端郵件軟件,如 Outlook 來發(fā)送郵件。5、可與其它郵件系統(tǒng)地協(xié)同服務。2.32.3 IISIIS WebWeb 郵件發(fā)送的不足郵件發(fā)送的不足1、由于 SMTP 進入 SMTP 服務器的所有郵件都放在了同一個目錄中,而不是為每一個帳號創(chuàng)建一個單獨的目錄,其檢索速度相對較慢。2、由于不能使用像 Outlook 這樣的郵件客戶端軟件來接收郵件,所以就不能為用戶提供許多方便的各種規(guī)則。3、有待進一步完善。雖然網(wǎng)絡開發(fā)人員可以通過編寫 ASP 腳本程序來實現(xiàn)所有的郵件功能,但這要求開發(fā)人員 ASP 開發(fā)人員精通 ASP,增加開發(fā)難度。這與其它郵件系統(tǒng)的零編程比起來,有著明顯的不足,也影響了其推廣的速度。2.42.4 IISIIS WebWeb 環(huán)境建立環(huán)境建立安裝 SMTP 服務器組件后并建立 Web 郵件服務站點,郵件服務站點應該提供郵件的發(fā)送和接收等服務,這樣所有能訪問該站點的帳號都可以申請郵件帳號,并使用站點提供了郵件服務。2.52.5 開發(fā)環(huán)境開發(fā)環(huán)境該設計開發(fā)環(huán)境使用 Windows 2003 Server Standard 操作系統(tǒng),搭建 SMTP和 POP3 郵件服務器,配置.NET 2.0 環(huán)境,代碼編寫工具為 Dreamwaver 8.0。3 3程序的設計與實現(xiàn)程序的設計與實現(xiàn)3.13.1 System.Web.Mail 命名空間介紹命名空間介紹System.Web.Mail 命名空間包含使您可以使用 CDO 消息組件來構造和發(fā)送消息的類。郵件可通過系統(tǒng)的 SMTP 郵件服務或任意的 SMTP 服務器來傳送。該命令空間包含三個類,如下說明類的常用屬性、方法說明:(1)、MailMessage 類的屬性:該類提供了多個屬性、方法、函數(shù),用以構造電子郵件。其中,常用屬性如表(2)、MailAttachment 類的函數(shù)第 7 頁 共 17 頁該類中的 MailAttachment 構造函數(shù)常與 new 子句配合來初始化附件類的新實例??捎脙煞N方式進行初始化。1、僅指定文件名;2、同時指定文件名和編碼類型。(3)、SMTPmail類的屬性及方法:該類提供了屬性及方法以調(diào)用 CDO 組件的功能來發(fā)送電子郵件,其中常用的屬性有:1、SMTPserver屬性。用于獲取或設置發(fā)送電子郵件的 SMTP 中繼郵件服務器的名稱;若不設置該屬性,則使用本地(系統(tǒng)內(nèi)置,如 127.0.0.1)的SMTP 服務器的名稱。2、send 方法。該方法用于發(fā)送電子郵件。類的常用屬性方法說明:(見表 1)表 1類的常用屬性MailAttachment提供用于構造電子郵件附件的屬性和方法MailMessage提供用于構造電子郵件的屬性和方法。SMTPMail提供用于使用 Windows 2000 的協(xié)作數(shù)據(jù)對象 (CDOSYS) 消息組件來發(fā)送消息的屬性和方法。其中,MailMessage 類提供的接口很多,以創(chuàng)建 MailObject 實例對象為例:如發(fā)件人(MailObject.From)、收件人(MailObject.To)、抄送(MailObject.Cc)、暗送(MailObject.Bcc)、郵件主題(MailObject.Subject)、郵件正文(MailObject.Body)等基本要素,也包括如優(yōu)先級(MailObject.Priority)、郵件格式(MailObject.BodyFormat)、編碼類型(MailObject.BodyFormat)等。3.23.2 程序設計主要步驟程序設計主要步驟首先要建立對 System.Web.Dll 動態(tài)連接庫的引用。然后,在窗口類之前用以下語句導入命名空間:Import System.Web.Mail,通過初始化構造一個MailMessage()函數(shù)定義變量,將接收 HTML 網(wǎng)頁中填入的信息賦值給變量,這樣就可以引用其中的成員。3.33.3 界面設計界面設計1、首頁首頁設置傳值頁面,把登錄信息中的用戶名,密碼等傳到下一個頁面(default.asp),form 標簽的名稱為 f1,主要代碼如:設置屬性及傳值頁面?zhèn)饔脩裘麄髅艽a在首頁中加入了判斷輸入的代碼,如 if (username.value = )alert(用戶名不可為空);第 8 頁 共 17 頁usernameshow.focus();return ;并加入了一些圖片,生成的效果如圖 3 圖 3登錄首頁2、發(fā)送郵件頁面發(fā)送郵件的頁面調(diào)用.NET 框架中的 System.Web.Mail, 此頁面的運行需要.NET2.0 框架環(huán)境,其它代碼也是該設計的核心部分,在主要代碼部分有詳細的說明,詳見 3.5 發(fā)送郵件頁面主要代碼, 生成頁面如圖 4第 9 頁 共 17 頁圖 4郵件發(fā)送頁面3、用戶登錄后頁面這是一個框架頁面,分為收件箱,草稿箱,發(fā)件箱和垃圾箱,每一個部分分別用一個頁面來實現(xiàn),其中最重要的收件箱用 listmail.asp 來實現(xiàn),在頁面中郵件總數(shù)用%dim eiset ei = server.createobject(easymail. PerFolders)創(chuàng)建對象并初始化變量然后分別定義變量來接收用來顯示組件中收件箱郵件的數(shù)量,同理分別用,來調(diào)用組件中收件箱數(shù)量,未讀郵件數(shù)量和郵箱使用率,并對是否為空做判斷。存儲空間的大小用來獲取,用來顯示空間使用率,其中 bf = CInt(100 * CLng(cursize / 1000) / maxsize),這里郵件設計為 10M生成如圖 5第 10 頁 共 17 頁圖 5登錄后4、收件箱收件箱頁面首先用%dim eiset ei = server.createobject(easymail.InfoList)創(chuàng)建對象并定義接收信息列表中內(nèi)容,用ei.LoadMailBox username 加載組件中的信息收件箱中所有的郵件信息用循環(huán)來顯示接收,%dim forpnforpn = i = 0do while i 循環(huán)結束如圖 6圖 6收件箱5、郵件查看在查看郵件頁面(showmail.asp)中同樣調(diào)用組件中來顯示每一郵件的信息值得注意的是在顯示詳細頁面的時候,如果沒有規(guī)定編碼格式,可能出現(xiàn)亂碼的情況,因此在這里添加一個判斷charset = UCase(ei.Text_CharSet)if charset = or charset = DEFAULT_CHARSET thencharset = gb2312把頁面的編碼設為 gb2312日期,優(yōu)先級,發(fā)件人,發(fā)件人地址,收件人地址,主題和郵件的詳細內(nèi)容分別調(diào)用組件中 Time,XMSMailPriority 等來實現(xiàn),具體格式如下:郵件優(yōu)先級判斷:%xmsp = ei.XMSMailPriority定義郵件優(yōu)先級if xmsp = High then第 12 頁 共 17 頁Response.Write 緊急郵件elseif xmsp = Low thenResponse.Write 慢件elseResponse.Write 普通郵件end if%發(fā)件人調(diào)用: 定義變量接收收件人變量調(diào)用主題調(diào)用郵件內(nèi)容如圖 7圖 7郵件查看3.43.4 主要代碼主要代碼程序主要頁面程序如下:第 13 頁 共 17 頁1、郵件發(fā)送頁面: Sub SendMail(ByVal sender As Object, ByVal e As EventArgs) Dim MailObject As New MailMessage() 構造一個 mailmessage 函數(shù),MailObject 為構造函數(shù)名 下面是判斷填的信息是否為空,不為空則為 text 中的內(nèi)容 If Emailfrom.Text Then MailObject.From = Emailfrom.Text 發(fā)件人 If EmailTo.Text Then MailObject.To = EmailTo.Text 收件人,這里必填,否則郵件找不到郵件服務器上的郵箱信息,會出錯 If EmailCc.Text Then MailObject.Cc = EmailCc.Text 抄送 If EmailBcc.Text Then MailObject.Bcc = EmailBcc.Text 密送 MailObject.Priority=MailPriority.High 郵件發(fā)送優(yōu)先級,可以有high,normal 和 low 三種選擇 MailObject.Subject = EmailSubject.Text 郵件主題 MailObject.Body = EmailBody.Text 主體,即郵件內(nèi)容 MailObject.BodyFormat = MailFormat.Text 設置郵件內(nèi)容格式,Text 為文本,Html 為超文本 MailObject.BodyEncoding 設置編碼類型,參考有 ascii Dim MailAttachment As String 定義附件,這里不知道用 string 好還是可變的 stringbuilder 好 MailAttachment = EmailAttachment.PostedFile.FileName lenth 變量控制附件大小,但是頁面和服務器的設置如果不對的話會很麻煩 If MailAttachment Then MailObject.Attachments.Add(New MailAttachment(MailAttachment) SMTPMail.SMTPServer = localhost 指定使用缺省的 SMTP 服務器,測試了很多次外網(wǎng)的郵件服務器都需要驗證,而這個又沒有驗證,所以就用自己 Win2003 建的郵件服務器做測試 SMTPMail.Send(MailObject) 調(diào)用 System.Web.Mail.send 發(fā)送郵件 panelSendEmail.Visible = False panelMailSent.Visible = True End Sub發(fā)送腳本部分完第 14 頁 共 17 頁html 定義變量 點擊處理事件判斷是否發(fā)送成功郵件已經(jīng)成功發(fā)送,歡迎您使用!2、郵件收件箱主要代碼:隨機數(shù)產(chǎn)生函數(shù):(作用是產(chǎn)生隨機數(shù),在注冊時產(chǎn)生驗證)function getGRSN()定義dim theGRSNRandomizetheGRSN = Int(9999999 * Rnd) + 1)讓 99999999 乘以隨機數(shù) rnd 的和加 1 并取整getGRSN = GRSN= & CStr(theGRSN)end function定義郵箱空間使用率:dim bfif maxsize 0 thenbf = CInt(100 * CLng(cursize / 1000) / maxsize)elsebf = 100end if列表:set ei = server.createobject(easymail.InfoList)顯示郵件主要函數(shù):set ei = server.createobject(easymail.emmail)4 4軟件測試軟件測試通過對自己搭建 WinWebmail 郵件服務器,設置域名 ,經(jīng)過以下測試可以得出:(1)、因為發(fā)送郵件使用的是 System.Web.Mail 命令空間,所以單獨運行時(此時需要獨立的 SMTP 服務器)可以送帶附件的郵件,可能是類的不同,所以集成到 WinWebmail 時不能發(fā)送帶附件的郵件,但這個功能是實現(xiàn)了的。第 15 頁 共 17 頁(2)、接收郵件可以完成,但是帶附件的郵件無法測試,域與域之間的郵件協(xié)議傳輸參考比較少,所以沒有做測試,就單域環(huán)境來說,用系統(tǒng)自帶的組件發(fā)送的郵件去接收,格式統(tǒng)一,能接收。(3)、郵件優(yōu)先級問題依然沒有完成。System.Web.Mail 命令空間使用low、normal、hight 分別來表示低,中和高,但無論用哪個都顯示為正常,原因可能也是組件接口問題。經(jīng)過以上測試,郵件發(fā)送功能基本能實現(xiàn)。結結論論本系統(tǒng)是基于.NET2.0 框架基礎上,調(diào)用 System.Web.Mail 命名空間和第三方組件,設計和開發(fā)的 Web Mail 郵件系統(tǒng),能實現(xiàn)帶附件的郵件的發(fā)送和接收。使用 Web Mail 郵件系統(tǒng)結合 IIS 組件,增強了 Web 收發(fā)系統(tǒng)的事務處理能力, 用戶只需要提供接入互聯(lián)網(wǎng)的瀏覽器,就能進行郵件的收發(fā),克服了傳統(tǒng)的郵件系統(tǒng) C/S 模式,非常方便、快捷。通過測試,發(fā)現(xiàn)了一些不足:1、調(diào)用郵件收發(fā)系統(tǒng)的接口沒有統(tǒng)一;2、不同郵件組件或者不同公司組件的調(diào)用不相兼容。在設計過程中,界面的設計始終不是特別友好,以今后的學習生活中我會繼續(xù)完善這個 Web Mail 郵件系統(tǒng)。這次畢業(yè)設計讓我對郵件技術的原理及工作方式等有了較深入的理解。通過對設計學習過程,深深感覺到軟件工程每一個步驟都是不可或缺的。以前只是簡單的認為,軟件工程的這一套就是寫代碼,寫程序,但現(xiàn)在覺得重要的是方法,怎么樣去實現(xiàn),基于哪一種開發(fā)環(huán)境和語言并不重要,會用或者說習慣就行。如果方法不對,到了軟件代碼的編寫階段再做更改需求分析這一類的工作的話,是很困難的,甚至軟件的架構都要做相當大的改動。當然,畢業(yè)設計不僅僅是為了設計而設計,它要求我們?nèi)W習很多知識,結合工作中的體會,對今后的學習和工作有著非常重要的意義。參考文獻參考文獻1韋宇,陳志剛. 電腦程序開發(fā)與應用J.基于 SMTP 的郵件程序設計,2000,(3):32-35。2曹建文,黃志平,魏新莉. ASP.NET 高級編程M. 北京:電子工業(yè)出版社,2004.3賀紅心,謝紅濤,卜淮源.微型機設計與應用J.WEB郵件系統(tǒng)的設計與實現(xiàn),2003,(3):59。4郭雷兵,寒楓,宋雨. 航空計算技術J. 基于 WEB 的郵件發(fā)送技術,2003, (7):126。第 16 頁 共 17 頁5范莉莉. 基于 Linux 的 Web 郵件系統(tǒng)的設計J.WEB 郵件系統(tǒng)設計(Linux), 2003, (5): 96-103。6趙海雁. 山西電子技術J.E-mail 的安全漏洞與安全防范,2006,(1):76-84。7王興眾, 楊柳. ASP 從入門到精通M.北京:人民郵電出版社,2003。第 17 頁 共 17 頁致致 謝謝在本論文撰寫和程序設計過程中,得到了李誼瑞和索望老師的大力支持和幫助,并指導我完成本論文。由于工作的原因,沒辦法使用學校的圖書資源, 只能與老師通過郵件和電話保持聯(lián)系。在我的論文的寫作過程中,李誼瑞和索望老師多次給我指出論文的不足之處,并給我提出了寶貴的意見,沒有兩位老師的指點,我就不會按時的完成論文。 再次謝謝索老師的幫助!在論文完成過程中,本人還得到了其他老師和許多同學的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!作者簡介姓 名: 葉科 性別: 男出生年月:1984-9 民族: 漢E-mail:第 18 頁 共 17 頁聲聲 明明本論文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程學院網(wǎng)絡工程系完成的。文中除了特別加以標注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學院或其他教學機構的學位或證書而使用過的材料。除非另有說明,本文的工作是原始性工作。關于學位論文使用權和研究成果知識產(chǎn)權的說明本人完全了解成都信息工程學院有關保管使用學位論文的規(guī)定,其中包括:(1)學校有權保管并向有關部門遞交學位論文的原件與復印件。(2)學校可以采用影印、縮印或其他復制方式保存學位論文。(3)學??梢詫W術交流為目的復制、贈送和交換學位論文。(4)學??稍试S學位論文被查閱或借閱。(5)學??梢怨紝W位論文的全部或部分內(nèi)容(保密學位論文在解密后遵守此規(guī)定) 。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學院。特此聲明! 作者簽名: 年 月 日
收藏
鏈接地址:http://weibangfood.com.cn/article/30546887.html