C#郵件收發(fā)程序?qū)崿F(xiàn)報(bào)告_第1頁(yè)
C#郵件收發(fā)程序?qū)崿F(xiàn)報(bào)告_第2頁(yè)
C#郵件收發(fā)程序?qū)崿F(xiàn)報(bào)告_第3頁(yè)
C#郵件收發(fā)程序?qū)崿F(xiàn)報(bào)告_第4頁(yè)
C#郵件收發(fā)程序?qū)崿F(xiàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一背知電子郵件翻譯自英文的E-mail表示通過(guò)電子通訊系統(tǒng)進(jìn)行信件書寫和收。多前,人們發(fā)明了電子郵件這種便捷的信息傳遞方式,這是人類通信歷史上的一次革命電子郵件的興起是在世紀(jì)年代年代的沉寂要是因?yàn)楫?dāng)時(shí)使用網(wǎng)的人太少,網(wǎng)絡(luò)的速度也僅為目前56Kbps標(biāo)速度的二十分之一。受網(wǎng)絡(luò)速度的限制,那時(shí)的用戶只能發(fā)送些簡(jiǎn)單的信息,根本無(wú)法想象現(xiàn)在這樣發(fā)送大量照片;到年中期,個(gè)人電腦興起,電子郵件開始在電腦迷以及大學(xué)生中廣泛傳播開來(lái);到年中期,隨著計(jì)算機(jī)技術(shù)的發(fā)展,出現(xiàn)了功能強(qiáng)大的。在眾的服務(wù)功能中,電子郵件就其強(qiáng)大功能中的一個(gè)。自此,電子郵件被廣為使用。今天使用的最多的通訊系統(tǒng)是互聯(lián)網(wǎng),同時(shí)電子郵件也是互聯(lián)網(wǎng)上最受歡迎的功能之一。通過(guò)電子郵件系統(tǒng),您可以用非常低廉的價(jià)格,以非常快速的方式,世界上任何一個(gè)角落的網(wǎng)絡(luò)用戶聯(lián)絡(luò)系,這些電子郵件可以是文字、圖象、聲音等各種方式。同時(shí),您可以得到大量免費(fèi)的新聞專題郵件實(shí)現(xiàn)輕松的信息搜索這任何傳統(tǒng)的方式也無(wú)法相比的。正是由于電子郵件的使用簡(jiǎn)易、投遞迅速、收費(fèi)低廉,易于保存、全球暢通無(wú)阻,使得電子郵件被廣泛地應(yīng)用,它使人們的交流方式得到了極大的改變。隨著網(wǎng)絡(luò)越來(lái)越普及,現(xiàn)在已經(jīng)是人人一個(gè)電子郵箱甚至有多個(gè)電子郵箱。在上使用最多的服務(wù)當(dāng)屬電子郵件服務(wù)了見電子郵件與人們的工作學(xué)習(xí)和生活息息相關(guān)已深深的融入到每個(gè)人生活中活在這個(gè)網(wǎng)絡(luò)時(shí)代的人是不可能沒有電子郵箱的郵已經(jīng)由以前科技工作者用于科技信息交流轉(zhuǎn)變到現(xiàn)在大多數(shù)人用來(lái)進(jìn)行日常生活工作學(xué)習(xí)的交流工具。同時(shí)電子郵箱的功能也發(fā)生了天覆地的變化原來(lái)只能收發(fā)文本到現(xiàn)在的收發(fā)多媒體文件簡(jiǎn)郵件的編碼減少編碼造成的數(shù)據(jù)冗余這些都得宜于與電子郵箱有關(guān)的網(wǎng)絡(luò)協(xié)議的發(fā)展和有關(guān)硬件的改進(jìn)?,F(xiàn)在我們每天都習(xí)慣于通過(guò)進(jìn)行交流,各大網(wǎng)站也幾乎都推出了自己的基于WEB的費(fèi)郵件系統(tǒng)。電子郵件已無(wú)可爭(zhēng)議的地成為互聯(lián)網(wǎng)上最受用戶歡迎的服務(wù)。郵的安全也逐漸受到人們的重視。至今已出現(xiàn)了各種安全保障措施來(lái)加強(qiáng)E-mail的全性。隨著電子郵件服務(wù)的完善和安全性的不斷提高郵件毫無(wú)疑問(wèn)將在人類的通信史上占有一席之地。如同其他的網(wǎng)絡(luò)服務(wù),電子郵件系統(tǒng)也有其使用的傳輸協(xié)議,包括

SMTP(Protocol簡(jiǎn)單郵件傳輸協(xié)議PostProtocol郵協(xié)議)word檔可自由復(fù)制編輯

和IMAP(Internet)息訪問(wèn)協(xié)議)等,這些協(xié)議應(yīng)用于電子郵件的發(fā)送和接收。一些郵件處理軟件如和FoxMail等是按照SMTP和POP3協(xié)結(jié)合Windows接字進(jìn)行設(shè)計(jì)來(lái)收發(fā)郵件的。本文主要介紹了所應(yīng)用到的技術(shù)的基礎(chǔ)知識(shí),并探討了建立郵件收發(fā)程序的設(shè)計(jì)思想、方法與功能實(shí)現(xiàn)流程圖。經(jīng)過(guò)測(cè)試調(diào)試,證明可實(shí)際應(yīng)用。下圖為郵件收發(fā)程序的主界面圖郵件收發(fā)系統(tǒng)主界面二、核心法思想在電子郵件程序編程中用了smtp協(xié)和pop3協(xié)協(xié)即簡(jiǎn)單郵件傳輸協(xié)議(SimpleProtocol一個(gè)運(yùn)用默認(rèn)端口為25的郵件發(fā)送協(xié)議,當(dāng)服務(wù)器端與客戶端之間發(fā)送郵件時(shí),SMTP服務(wù)器將偵聽端,在郵件客戶端需要發(fā)送郵件時(shí),首先建立一個(gè)TCP的接。連建立之后SMTP客端發(fā)送協(xié)中規(guī)定的命令內(nèi)容到服務(wù)器,之后等待響應(yīng)。相對(duì)應(yīng)于的郵件收發(fā)協(xié)議協(xié)即郵局協(xié)議OfficeProtocol用于接收電子郵件的信息,后面的代表的版本號(hào)。該協(xié)議的默認(rèn)端口是110.樣地,POP3服器會(huì)主動(dòng)偵聽TCP端,郵件系統(tǒng)的客戶端如果要接收郵件,也會(huì)先建立一個(gè)連接立接之后POP3客端向服器端發(fā)送議命令并等待響應(yīng)。POP3協(xié)支持“離線”郵件處理。其具體過(guò)程是:郵件發(fā)送到服務(wù)器上,電子郵件客word檔可自由復(fù)制編輯

戶端調(diào)用郵件客戶機(jī)程序以連接服務(wù)器,并下載所有未閱讀的電子郵件。本次設(shè)計(jì)的電子郵件收發(fā)系統(tǒng)由下面幾個(gè)部分構(gòu)成:發(fā)送人的電子郵件地址,收件人的電子郵件地址,郵件的主題信息、正文信息以及附件信息。根據(jù)以上幾點(diǎn)可以了解到電子郵件程序大致應(yīng)有以下幾個(gè)方面的作用:(1發(fā)送郵件功能通收集發(fā)送人電子郵件地址件人電子郵件地址郵件正文、主題以及附件等必需信息,并將其整合起來(lái)把郵件發(fā)送出去。(2接收郵件功能。通過(guò)收集收件人的登錄名和密碼登陸pop3服器,從服務(wù)器上下載郵件到主機(jī)上供用戶瀏覽。由以上需要進(jìn)行電子郵件程序的模塊設(shè)計(jì)。本系統(tǒng)主要分為主窗口模塊、發(fā)送郵件模塊、接收郵件模塊三大模塊。在發(fā)送郵件模塊中首先編寫一個(gè)SendMail類封裝郵件發(fā)送的過(guò)程,并在SendMail類中編寫發(fā)送信息的業(yè)務(wù)邏輯送郵件的窗口類中使用Send函與SendMail類進(jìn)行消息通信并控制發(fā)送郵件的流程,同時(shí)在發(fā)送的狀態(tài)窗口中顯示信息,發(fā)送程序由線程執(zhí)行。相對(duì)于發(fā)送郵件來(lái)說(shuō),使用協(xié)議接收郵件要復(fù)雜一些,在接收郵件塊中編寫一個(gè)類封裝登陸pop3務(wù)器,接收郵件的業(yè)務(wù)邏輯也在中寫。在接收郵件時(shí),ReceiveMail類與接收窗口類進(jìn)行通信,獲得當(dāng)前接收郵件的進(jìn)度并顯示在接收窗口的狀態(tài)欄中,接收郵件程序由線程執(zhí)行??偟膩?lái)說(shuō),系統(tǒng)的實(shí)現(xiàn)需要實(shí)現(xiàn)以下功能:(1使用線程發(fā)送郵件,并可在郵件中添加附件。(2使用線程接收郵件示郵件的數(shù)目在列表框中顯示郵件編號(hào)和相應(yīng)的報(bào)頭。(3發(fā)送郵件與接收郵件錢對(duì)必要信息(如務(wù)器地址、發(fā)送人Email地址)進(jìn)行監(jiān)測(cè),如未填寫則中止發(fā)送與接收郵件。(4在發(fā)送與接收郵件的過(guò)程中若出現(xiàn)連接錯(cuò)誤,及時(shí)中止發(fā)送或接收程序并拋出異常。(5在發(fā)送與接收郵件的同時(shí),窗體同步顯示出發(fā)送或接收的狀況。三核算流圖()子郵件系統(tǒng)實(shí)現(xiàn)的功能包括新建用戶賬號(hào)、接收簡(jiǎn)單郵件或帶附件的郵件,發(fā)送簡(jiǎn)單郵件或帶附件的郵件電郵件的編寫電子郵件的管理下圖是郵件收發(fā)系統(tǒng)的功能流程圖。word檔可自由復(fù)制編輯

軟件

客戶端接收系統(tǒng)

電子郵件

接收系統(tǒng)

電子郵件

提示

各種錯(cuò)誤的簡(jiǎn)接單收郵件

郵件接收

帶有附件的

簡(jiǎn)發(fā)單送郵件

郵件發(fā)送

帶有附件的圖

程序功能圖(2發(fā)送郵件流程連服務(wù)器在送之前首先要檢查發(fā)送郵所必需填寫的信息是否填寫完整若填寫不完整則直結(jié)束接判斷郵件中是否含有附件有則在信息對(duì)象中添加附件,然后發(fā)送郵件。下圖是發(fā)送郵件的流程圖。圖發(fā)送郵件流程圖(3)

接收郵件時(shí)首先創(chuàng)建一個(gè)CP連到POP3務(wù)器。如果連接不成功就退出執(zhí)行,連接成功后再發(fā)送用戶名和密碼命令進(jìn)行身份認(rèn)證份證通過(guò)后檢查接收的郵件郵word檔可自由復(fù)制編輯

數(shù)大于,個(gè)接收郵件。接收郵件完畢后,檢查賬號(hào)中是否保留服務(wù)器上郵件的設(shè)置,如果是就不做任何處理則服務(wù)器上刪除已接收的郵件后關(guān)閉連接成件接收。下圖是接收郵件的流程圖。

圖接收郵件流程圖四源碼下面給出的是程序的源代碼:System.Collections;System.Windows.Forms;word檔可自由復(fù)制編輯

System.Net.Mail;namespaceSendEmail{///<summary>///的摘要說(shuō)明///</summary>publicclass:{System.Windows.Forms.LabelSystem.Windows.Forms.LabelSystem.Windows.Forms.LabelSystem.Windows.Forms.LabelSystem.Windows.Forms.LabelSystem.Windows.Forms.LabelSystem.Windows.Forms.Labeltxt_From;txt_To;txt_Subject;txt_Body;txt_Attachment;txt_Cc;System.Windows.Forms.LabelSystem.Windows.Forms.ComboBox///<summary>///需的設(shè)計(jì)器變量///</summary>System.ComponentModel.Containercomponents=null;public{////Windows窗體設(shè)計(jì)其支持所必需的//InitializeComponent();////調(diào)用后添加任何構(gòu)造函數(shù)代碼//}word檔可自由復(fù)制編輯

///<summary>///清理所有正在使用的資源///</summary>overridevoid{if{ifnull){}}base.Dispose(disposing);}窗體設(shè)計(jì)器生成的代碼///<summary>///計(jì)器支持所需的方法,不要使用代碼編輯器修改///此方法的內(nèi)容///</summary>voidInitializeComponent(){System.ComponentModel.ComponentResourceManagerresources=System.ComponentModel.ComponentResourceManager(typeof(Send));this.label1=this.label2=this.label3=this.label4=this.label5=this.label6=this.txt_FromnewSystem.Windows.Forms.TextBox();newSystem.Windows.Forms.TextBox();this.txt_Cc=newSystem.Windows.Forms.TextBox();=System.Windows.Forms.TextBox();=newSystem.Windows.Forms.TextBox();=this.btn_Send=this.txt_Attachment=newSystem.Windows.Forms.TextBox();this.label7=this.label8=this.cmb_Priority=System.Windows.Forms.ComboBox();=newSystem.Windows.Forms.OpenFileDialog();//word檔可自由復(fù)制編輯

//label1//this.label1.AutoSize=newthis.label1.Name="label1";this.label1.Size=System.Drawing.Size(53,=this.label1.Text"發(fā)件人";////label2//this.label2.AutoSize=newthis.label2.Name="label2";this.label2.Size=System.Drawing.Size(53,=this.label2.Text"收件人";////label3//this.label3.AutoSize=newthis.label3.Name="label3";this.label3.Size=System.Drawing.Size(53,=this.label3.Text"抄送"http:////label4//this.label4.AutoSize=newthis.label4.Name="label4";this.label4.Size=System.Drawing.Size(53,=this.label4.Text"附件"http:////label5//this.label5.AutoSize=newthis.label5.Name="label5";this.label5.Size=System.Drawing.Size(53,=this.label5.Text"主題"word檔可自由復(fù)制編輯

////label6//this.label6.AutoSize=newthis.label6.Name="label6";this.label6.Size=System.Drawing.Size(53,=this.label6.Text"正文"http:////txt_From//this.txt_From.Location=newSystem.Drawing.Point(488,39);this.txt_From.Name="txt_From";newSystem.Drawing.Size(283,this.txt_From.TabIndexthis.txt_From.TextChanged+=new////txt_To//=this.txt_To.Name="txt_To";newSystem.Drawing.Size(283,=//////=103);="txt_Cc";this.txt_Cc.Size=21);this.txt_Cc.TabIndex=////txt_Subject//newthis.txt_Subject.Name"txt_Subject";this.txt_Subject.Size=21);=//////this.txt_Body.Location=new=this.txt_Body.Name="txt_Body";word檔可自由復(fù)制編輯

new159);=10;////btn_Browse//new==newSystem.Drawing.Size(64,23);this.btn_Browse.TabIndex=11;="瀏覽"+=System.EventHandler(this.btn_Browse_Click);//////this.btn_Send.Locationnew=newSystem.Drawing.Size(59,63);12;="發(fā)"+=newSystem.EventHandler(this.btn_Send_Click);////txt_Attachment//this.txt_Attachment.Location=newSystem.Drawing.Point(488,this.txt_Attachment.Name="txt_Attachment";=new21);this.txt_Attachment.TabIndex=13;////label7//this.label7.AutoSizenew楷體"15.75F,this.label7.Image==newSystem.Drawing.Point(60,42);this.label7.Name="label7";this.label7.Size=System.Drawing.Size(33,231);=this.label7.Text"在此發(fā)送郵件"http:////label8//this.label8.AutoSize=newword檔可自由復(fù)制編輯

this.label8.Name="label8";this.label8.Size=System.Drawing.Size(53,=this.label8.Text"優(yōu)先級(jí)";////cmb_Priority//newthis.cmb_Priority.Name"cmb_Priority";=newSystem.Drawing.Size(80,=16;//////this.AutoScaleBaseSizenew14);this.ClientSize=this.Controls.Add(this.txt_Attachment);this.Controls.Add(this.txt_Cc);this.Controls.Add(this.txt_From);this.Name="郵件";+=newthis.ResumeLayout(false);}#endregionword檔可自由復(fù)制編輯

///<summary>///應(yīng)用程序的主入口點(diǎn)///</summary>[STAThread]void{Application.Run(new}voidsender,System.EventArgse){//始化優(yōu)先級(jí)組合框和格式組合框高");低");普通"cmb_Priority.SelectedIndex=}//送voidbtn_Send_Click(objectsender,System.EventArgse){try{myMailnewMailMessage(txt_From.Text.Trim(),txt_To.Text.Trim());if(txt_Cc.Text.Trim()!=""){myMail.CC.Add(txt_Cc.Text.Trim());設(shè)置抄送}myMail.Subject=//設(shè)置郵件主題=//置郵件正文//加附件if(txt_Attachment.Text.Trim()""){char[]=char[]{','};(stringatttxt_Attachment.Text.Trim().Split(delim)){myAttachmentnewAttachment(att);myMail.Attachments.Add(myAttachment);}}word檔可自由復(fù)制編輯

//置郵件優(yōu)先級(jí)if(cmb_Priority.Text=="高"){myMail.Priority=MailPriority.High;}elseif"低"){myMail.Priority=MailPriority.Low;}else{myMail.Priority=MailPriority.Normal;}//送郵件=SmtpClient();smtp.Host="";=true;服務(wù)器需要驗(yàn)證smtp.Credentials=NetworkCredential(163.com",smtp.Send(myMail);MessageBox.Show("郵件發(fā)送成功!}(Exceptionex){}}//加附件voidbtn_Browse_Click(object{openFileDialog1.Multiselect=true;//可以在打文件對(duì)話框中同時(shí)選擇多個(gè)文件if(openFileDialog1.ShowDialog()==DialogResult.OK){//多個(gè)選定附件的名稱顯示在文本框中,并以逗號(hào)分隔(stringnameinopenFileDialog1.FileNames){txt_Attachment.Text=+name+",";}//掉最后一個(gè)多余的逗號(hào)txt_Attachment.Text=txt_Attachment.Text.Length-}}word檔可自由復(fù)制編輯

//出voidSystem.EventArgse){Application.Exit();}voidtxt_From_TextChanged(objectsender,{}}}System.Collections.Generic;System.Windows.Forms;namespaceSendEmail{publicStart:{public{InitializeComponent();}voidRec_Click(objecte){ReceiveopenRec=newReceive();}voidEventArgs{=new}}}word檔可自由復(fù)制編輯

System.Collections;System.Windows.Forms;namespaceSendEmail{publicReceiveForm{publicTcpClient//用以和服務(wù)器建立CP連接publicNetworkStream//戶機(jī)和服務(wù)器繪畫是用的數(shù)據(jù)流public//以操作數(shù)據(jù)流從數(shù)據(jù)流中獲取從服務(wù)器反饋的數(shù)據(jù)publicstringData;publicbyte[]publicstringCRLF="\r\n";publicReceive(){InitializeComponent();}連接服務(wù)器voidConnectBtn_Click(objectEventArgse){Cursorcr=Cursor.Current;==TcpClient(POPServ.Text,110);//立和pop3的接stringRecString;try{NetStrm=Server.GetStream();//取客戶機(jī)和服務(wù)器繪畫的數(shù)據(jù)流RdStrmnewStreamReader(Server.GetStream(),RecString"客戶機(jī)和服務(wù)器繪畫的數(shù)據(jù)流中的服務(wù)器反饋信息"+RdStrm.ReadLine();//從服務(wù)器獲取的反饋數(shù)據(jù)存儲(chǔ)在¨中D//顯示出來(lái)word檔可自由復(fù)制編輯

Data="USER"+User.TextCRLF;//義傳送賬戶名稱的命令=NetStrm.Write(szData,szData.Length);//服務(wù)器傳送賬戶RecStringRdStrm.ReadLine();//收服務(wù)器反饋數(shù)據(jù)向服務(wù)器傳送用戶名之后服務(wù)器的反饋信息"+RecString);Data="PASS"+Passw.Text+//義賬戶對(duì)應(yīng)的口令的命令=NetStrm.Write(szData,szData.Length);//服務(wù)器傳送賬戶的口令RecStringRdStrm.ReadLine();//收服務(wù)器反饋數(shù)據(jù)///MessageBox.Show("向服務(wù)器傳送密碼后服務(wù)器的反饋信息"+RecString);Data="STAT"CRLF;//義獲取郵箱中郵件數(shù)目和占用空間的命令=NetStrm.Write(szData,szData.Length);//送郵箱郵件數(shù)目和占用空間的命令RecStringRdStrm.ReadLine();//收服務(wù)器反饋的數(shù)據(jù)=RecString.Split('');if(Int32.Parse(Num[1])>{="郵數(shù)目"Num[1]+",所占空間"+Num[2]+"字節(jié)";==false;}elseMessageBox.Show("郵?箱中D沒有?D?件t!ê?");//上是解析命令后服務(wù)器反饋的數(shù)據(jù),并通過(guò)狀態(tài)條顯示出來(lái)}(InvalidOperationException{="錯(cuò)"+err.ToString();word檔可自由復(fù)制編輯

}=}#endregion#region斷開連接voidDisconnectBtn_Click(objectsender,{stringRecString;Cursorcr=Cursor.Current;=Data=+CRLF;//義關(guān)閉會(huì)話命令=NetStrm.Write(s

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論