資源描述:
《SMTP協(xié)議_淺談.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、SMTP(SimpleMailTransferProtocol)協(xié)議基本介紹SMTP(SimpleMailTransferProtocol)即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式。SMTP協(xié)議屬于TCP/IP協(xié)議族,它幫助每臺(tái)計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件時(shí)找到下一個(gè)目的地。通過(guò)SMTP協(xié)議所指定的服務(wù)器,就可以把Email寄到收信人的服務(wù)器上了。SMTP服務(wù)器則是遵循SMTP協(xié)議的發(fā)送郵件服務(wù)器,用來(lái)發(fā)送或中轉(zhuǎn)發(fā)出的電子郵件。采用ASCII文本形式組織郵件內(nèi)容,非
2、常直觀和簡(jiǎn)單SMTP在郵件通信中的位置SMTP,即簡(jiǎn)單郵件傳送協(xié)議,所對(duì)應(yīng)RFC文檔為RFC821。同http等多數(shù)應(yīng)用層協(xié)議一樣,它工作在C/S模式下,用來(lái)實(shí)現(xiàn)因特網(wǎng)上的郵件傳送。SMTP在整個(gè)電子郵件通信中所處的位置如圖所示。SMTP在郵件通信中的位置電子郵件的通信過(guò)程可以看出,SMTP是用來(lái)將客戶機(jī)上的郵件傳送到服務(wù)器上客戶機(jī)是指某次連接中的發(fā)送方服務(wù)器是指相應(yīng)的接收方用戶代理用戶代理UA(UserAgent)是用戶與電子郵件系統(tǒng)的交互接口,一般來(lái)說(shuō)它就是PC機(jī)上的一個(gè)程序。Windows上常見(jiàn)的用戶代
3、理是Foxmail和OutlookExpress。用戶代理提供一個(gè)好的用戶界面,它提取用戶在其界面填寫(xiě)的各項(xiàng)信息,生成一封符合SMTP等郵件標(biāo)準(zhǔn)的郵件,然后采用SMTP協(xié)議將郵件發(fā)送到發(fā)送端郵件服務(wù)器。郵件服務(wù)器郵件服務(wù)器是電子郵件系統(tǒng)的核心,它用來(lái)發(fā)送和接收郵件。郵件服務(wù)器不同于普通PC的是它幾乎是全天工作的,所以它可以在任何時(shí)候?yàn)橛脩籼峁┓?wù)。很多ISP都提供免費(fèi)的郵件服務(wù)器,如126提供smtp.126.com郵件服務(wù)器。郵件服務(wù)器向其它郵件服務(wù)器轉(zhuǎn)發(fā)郵件也是采用SMTP協(xié)議。SMTP使用命令和響應(yīng)在M
4、TA客戶和MTA服務(wù)器之間傳送報(bào)文。每一個(gè)命令都以回車(chē)和換行的行結(jié)束符標(biāo)記終止。命令與應(yīng)答對(duì)大小寫(xiě)不敏感,也就是說(shuō),命令和應(yīng)答可以是大寫(xiě),小寫(xiě)或兩者的混合,但這一點(diǎn)對(duì)用戶郵件名稱(chēng)卻不一定是對(duì)的,因?yàn)橛械闹鳈C(jī)對(duì)用戶名大小寫(xiě)是敏感的。這樣SMTP實(shí)現(xiàn)中就將用戶郵箱名稱(chēng)保留成初始時(shí)的樣子,主機(jī)名稱(chēng)對(duì)大小寫(xiě)不敏感。發(fā)送方和接收方之間的通信是一問(wèn)一答的交替對(duì)話形式,由發(fā)送者控制。發(fā)送發(fā)出一條命令,接收者發(fā)出一個(gè)響應(yīng)。接收者在發(fā)送下一條指令?前必須等應(yīng)答。一個(gè)重要的應(yīng)答是連接應(yīng)答。在連接完成時(shí),接收者通常會(huì)?發(fā)送220"
5、服務(wù)就緒"。發(fā)送者在繼續(xù)發(fā)送指令前會(huì)等待此應(yīng)答SMTP的通信模型:針對(duì)用戶的郵件請(qǐng)求,發(fā)送SMTP建立與接收SMTP之間建立一個(gè)雙向傳送通道。接收SMTP可以是最終接收者也可以是中間傳送者。SMTP命令由發(fā)送SMTP發(fā)出,由接收SMTP接收,而應(yīng)答則反方面?zhèn)魉?。一旦傳送通道建立,SMTP發(fā)送者發(fā)送MAIL命令指明郵件發(fā)送者。如果SMTP接收者可以接收郵件則返回OK應(yīng)答。SMTP發(fā)送者再發(fā)出RCPT命令確認(rèn)郵件是否接收到。如果SMTP接收者接收,則返回OK應(yīng)答;如果不能接收到,則發(fā)出拒絕接收應(yīng)答(但不中止整個(gè)郵
6、件操作),雙方將如此重復(fù)多次。當(dāng)接收者收到全部郵件后會(huì)接收到特別的序列,如果接收者成功處理了郵件,則返回OK應(yīng)答。郵件郵件是一種消息的格式,由信封、首部和正文組成信封上最重要的是收信人的地址。郵件服務(wù)器用這個(gè)地址將郵件發(fā)送到收信人所在的郵件服務(wù)器上。首部是由用戶代理或郵件服務(wù)器添加的一些信息。包括Received、Message-ID、From、Data、Reply-To、X-Phone、X-Mailer、To和Subject等字段。正文是是發(fā)送用戶發(fā)給接收用戶報(bào)文的內(nèi)容。RFC822規(guī)定正文為NVTASCI
7、I文字行。更為詳細(xì)的說(shuō)明,請(qǐng)參考RFC821和RFC822等協(xié)議。郵件的收發(fā)過(guò)程一般情況下,一封郵件的發(fā)送和接收過(guò)程如下。1)發(fā)信人在用戶代理里編輯郵件,包括填寫(xiě)發(fā)信人郵箱、收信人郵箱和郵件標(biāo)題等等。2)用戶代理提取發(fā)信人編輯的信息,生成一封符合郵件格式標(biāo)準(zhǔn)(RFC822)的郵件。3)用戶代理用SMTP將郵件發(fā)送到發(fā)送端郵件服務(wù)器(即發(fā)信人郵箱所對(duì)應(yīng)的郵件服務(wù)器)。4)發(fā)送端郵件服務(wù)器用SMTP將郵件發(fā)送到接收端郵件服務(wù)器(即收信人郵箱所對(duì)應(yīng)的郵件服務(wù)器)。5)收信人調(diào)用用戶代理。用戶代理用POP3協(xié)議從接收
8、端郵件服務(wù)器取回郵件。6)用戶代理解析收到的郵件,以適當(dāng)?shù)男问匠尸F(xiàn)在收信人面前SMTP詳解-通信過(guò)程一個(gè)具體的SMTP通信(如發(fā)送端郵件服務(wù)器與接收端服務(wù)器的通信)的過(guò)程如下。1)發(fā)送端郵件服務(wù)器(以下簡(jiǎn)稱(chēng)客戶端)與接收端郵件服務(wù)器(以下簡(jiǎn)稱(chēng)服務(wù)器)的25號(hào)端口建立TCP連接。2)客戶端向服務(wù)器發(fā)送各種命令,來(lái)請(qǐng)求各種服務(wù)(如認(rèn)證、指定發(fā)送人和接收人)。3)服務(wù)器解析用戶的命令,做出相應(yīng)動(dòng)作并返回給