百科解釋
SMTP:簡單郵件傳輸協(xié)議 (SMTP:Simple Mail Transfer Protocol) SMTP 是一種提供可靠且有效電子郵件傳輸?shù)膮f(xié)議。 SMTP 是建模在 FTP 文件傳輸服務上的一種郵件服務,主要用于傳輸系統(tǒng)之間的郵件信息并提供來信有關的通知。 SMTP 獨立于特定的傳輸子系統(tǒng),且只需要可靠有序的數(shù)據(jù)流信道支持。 SMTP 重要特性之一是其能跨越網(wǎng)絡傳輸郵件,即“ SMTP 郵件中繼”。通常,一個網(wǎng)絡可以由公用互聯(lián)網(wǎng)上 TCP 可相互訪問的主機、防火墻分隔的 TCP/IP 網(wǎng)絡上 TCP 可相互訪問的主機,及其它 LAN/WAN 中的主機利用非 TCP 傳輸層協(xié)議組成。使用 SMTP ,可實現(xiàn)相同網(wǎng)絡上處理機之間的郵件傳輸,也可通過中繼器或網(wǎng)關實現(xiàn)某處理機與其它網(wǎng)絡之間的郵件傳輸。 在這種方式下,郵件的發(fā)送可能經(jīng)過從發(fā)送端到接收端路徑上的大量中間中繼器或網(wǎng)關主機。域名服務系統(tǒng)(DNS)的郵件交換服務器可以用來識別出傳輸郵件的下一跳 IP 地址。 在傳輸文件過程中使用25號端口 SMTP協(xié)議原理 SMTP-簡單郵件傳輸協(xié)議(SimpleMailTransferProtocol),是定義郵件傳輸?shù)膮f(xié)議,它是基于TCP服務的應用層協(xié)議,由RFC0821所定義。SMPT協(xié)議規(guī)定的命令是以明文方式進行的。為了說明SMTP的工作原理,我們以向www.oray.gz.cn發(fā)送郵件為實例進行說明。 在linux環(huán)境下,使用"telnet www.oray.gz.cn 25"連接www.oray.gz.cn的25號端口(SMTP的標準服務端口);在windows下使用telnet程序,遠程主機指定為www.oray.gz.cn,而端口號指定為25,然后連接www.oray.gz.cn:交互過程如下: [lix@nslix]$telnetwww.oray.gz.cn25 Trying202.99.11.120... Connectedtowww.oray.gz.cn. Escapecharacteris''''^]''''. HELOideal 220www.oray.gz.cnESMTPSendmail8.10.2/8.10.2;Mon,18Sep200013:40:44 +0800 250www.oray.gz.cnHello[210.12.114.130],pleasedtomeetyou MAILFROM:ideal@btamail.net.cn 2502.1.0IDEAL@btamail.net.cn...Senderok RCPTTO:ideal@oray.gz.cn 2502.1.5ideal@oray.gz.cn...Recipientok DATA 354Entermail,endwith"."onalinebyitself hello,Plstogettomeetu:)goodluck . 2502.0.0e8I5j1M11204Messageacceptedfordelivery QUIT 2212.0.0www.oray.gz.cnclosingconnection Connectionclosedbyforeignhost. 其中黑體部分是輸入的命令,其他內容是對方郵件服務器輸出的狀態(tài)信息。 這里,HELO是客戶向對方郵件服務器發(fā)出的標識自己的身份的命令,這里假設發(fā)送者為ideal;MAILFROM命令用來表示發(fā)送者的郵件地址;RCPTTO:標識接收者的郵件地址,這里表示希望發(fā)送郵件給ideal@oray.gz.cn,如果郵件接收者不是本地用戶,例如RCPTTO:ideal@btamail.net.cn,則說明希望對方郵件服務器為自己轉發(fā)(Relay)郵件,若該機器允許轉發(fā)這樣的郵件,則表示該郵件服務器是OPENRELAY的,否則說明該服務器不允許RELAY;DATA表示下面是郵件的數(shù)據(jù)部分,輸入完畢以后,以一個"."開始的行作為數(shù)據(jù)部分的結束標識;QUIT表示退出這次會話,結束郵件發(fā)送。 這就是一個簡單的發(fā)送郵件的會話過程,其實當使用outlookexpress等客戶軟件發(fā)送時,后臺進行的交互也是這樣的,當然,SMTP協(xié)議為了處理復雜的郵件發(fā)送情況如附件等等,定義了很多的命令及規(guī)定,具體可以通過閱讀RFC821來獲得。 當你的一個朋友向你發(fā)送郵件時,他的郵件服務器和你的郵件服務器通過SMTP協(xié)議通信,將郵件傳遞給你郵件地址所指示的郵件服務器上(這里假設你的本地郵件服務器是Linux系統(tǒng)),若你通過telnet協(xié)議直接登錄到郵件服務器上,則可以使用mail等客戶軟件直接閱讀郵件,但是若你希望使用本地的MUA(MailUserAgent,如outlookexpress等客戶軟件)來閱讀郵件,則本地客戶端通過POP3或IMAP協(xié)議與郵件服務器交互,將郵件信息傳遞到客戶端(如:win98系統(tǒng))。而如果你向你的朋友回復一封信件時,你所使用的MUA也是通過SMTP協(xié)議與郵件服務(一般為發(fā)送郵件地址對應的email地址)器通信,指示其希望郵件服務器幫助轉發(fā)一封郵件到你朋友的郵件地址指定的郵件服務器中。若本地郵件服務器允許你通過它轉發(fā)郵件,則服務器通過SMTP協(xié)議發(fā)送郵件到對方的郵件服務器。這就是接受和發(fā)送郵件的全部過程。 什么是mailRelay 郵件服務器一般具有一個或若干個域名(這些域名應該出現(xiàn)在某個配置文件內),郵件服務器在運行時將監(jiān)聽25號端口,等待遠程的發(fā)送郵件的請求。網(wǎng)絡上其他的mail服務器或者請求發(fā)送郵件的MUA(MailUserAgent,如outlookexpress、foxmail等等)會連接郵件服務器的25號端口,請求發(fā)送郵件,SMTP會話過程一般是從遠程標識自己的身份開始,過程如下: HELOremote.system.domainname 250qmailserver.domain MAILFROM:user@somewherer.net 250OK RCPTTO:user1@elsewhere.net 郵件的接收者user1@elsewhere.net中的域名并不一定是郵件接受服務器的所具有的本地域名,也就是說郵件目的可能不是上面協(xié)議交互中的接收方,而是郵件發(fā)送者希望接收郵件服務器幫助其轉發(fā)郵件。這時候本地系統(tǒng)可能有兩種回答,接受它: 250OK 或者拒絕接受它: 553sorry,.thatdomainisnotinmydomainlistofallowedrecphosts 第一種情況下,本地郵件服務器是允許relay的,它接收并同意傳遞一個目的地址不是本地的郵件;而第二種情況則不接收非本地郵件。 為什么不能配置郵件服務器為openrelay? 如果系統(tǒng)管理員將自己的郵件服務器設置為openrelay,將會導致一些垃圾郵件發(fā)送者將你的郵件服務器作為轉發(fā)自圾郵件的中繼站,這將使垃圾郵件的接收者將矛頭對準你,可能會導致報復性的郵件炸彈;垃圾郵件還能消耗你大量的資源,占用你的帶寬。更為糟糕的事情可能是你的名字可能會上了黑名單,成為其他郵件接收者共同抵制的目標,你的郵件將被這些接收者所拒絕。
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團隊博客 | 免責聲明 | 關于詞典 | 幫助