複製鏈接
請複製以下鏈接發送給好友

SMTP

鎖定
SMTP是一種提供可靠且有效的電子郵件傳輸的協議。SMTP是建立在FTP文件傳輸服務上的一種郵件服務,主要用於系統之間的郵件信息傳遞,並提供有關來信的通知。SMTP獨立於特定的傳輸子系統,且只需要可靠有序的數據流信道支持,SMTP的重要特性之一是其能跨越網絡傳輸郵件,即“SMTP郵件中繼”。使用SMTP,可實現相同網絡處理進程之間的郵件傳輸,也可通過中繼器或網關實現某處理進程與其他網絡之間的郵件傳輸。 [1] 
中文名
簡單郵件傳輸協議
外文名
Simple Mail Transfer Protocol
簡    稱
SMTP
作    用
傳輸系統之間的郵件信息
端    口
25

SMTP簡介

SMTP是一個相對簡單的基於文本協議。在其之上指定了一條消息的一個或多個接收者(在大多數情況下被確認是存在的),然後消息文本會被傳輸。可以很簡單地通過telnet程序來測試一個SMTP服務器。SMTP使用TCP端口25。要為一個給定的域名決定一個SMTP服務器,需要使用MX (Mail eXchange)DNS [2] 
在八十年代早期SMTP開始被廣泛地使用。當時,它只是作為UUCP的補充,UUCP更適合於處理在間歇連接的機器間傳送郵件。相反,SMTP在發送和接收的機器在持續連線的網絡情況下工作得最好。 [2] 
Sendmail是最早使用SMTP的郵件傳輸代理之一。到2001年至少有50個程序將SMTP實現為一個客户端(消息的發送者)或一個服務器(消息的接收者)。一些其他的流行的SMTP服務器程序包括了Philip Hazel的exim,IBM的Postfix,D. J. Bernstein的Qmail,以及Microsoft Exchange Server [2] 
由於這個協議開始是基於純ASCII文本的,它在二進制文件上處理得並不好。諸如MIME的標準被開發來編碼二進制文件以使其通過SMTP來傳輸。今天,大多數SMTP服務器都支持8位MIME擴展,它使二進制文件的傳輸變得幾乎和純文本一樣簡單。 [2] 
SMTP是一個“推”的協議,它不允許根據需要從遠程服務器上“拉”來消息。要做到這點,郵件客户端必須使用POP3IMAP。另一個SMTP服務器可以使用ETRN在SMTP上觸發一個發送。 [2] 

SMTP功能

SMTP是一組用於從源地址到目的地址傳送郵件的規則,並且控制信件的中轉方式。SMTP協議屬於TCP/IP協議族,它幫助每台計算機在發送或中轉信件時找到下一個目的地。通過SMTP協議所指定的服務器,我們就可以把E—mail寄到收信人的服務器上了,整個過程只需要幾分鐘。SMTP服務器是遵循SMTP協議的發送郵件服務器,用來發送或中轉用户發出的電子郵件。 [3] 
SMTP是一種提供可靠且有效電子郵件傳輸的協議。它是建立在FTP文件傳輸服務上的一種郵件服務,主要用於傳輸系統之間的郵件信息並提供來信有關的通知。 [3] 
SMTP重要的特性之一是它能跨越網絡傳輸郵件,也即“SMTP郵件中繼”。使用SMTP,可實現相同網絡上處理機之間的郵件傳輸,也可以通過中繼器或網關實現某處理機與其它網絡之間的郵件傳輸。具有域名服務系統(DNS)功能的郵件交換服務器還可以用來識別出傳輸郵件的下一跳IP地址。 [3] 

SMTP工作過程

SMTP協議的工作過程可分為如下3個過程: [4] 
(1)建立連接:在這一階段,SMTP客户請求與服務器的25端口建立一個TCP連接。一旦連接建立,SMTP服務器和客户就開始相互通告自己的域名,同時確認對方的域名。 [4] 
(2)郵件傳送:利用命令,SMTP客户將郵件的源地址、目的地址和郵件的具體內容傳遞給SMTP服務器,SMTP服務器進行相應的響應並接收郵件。 [4] 
(3)連接釋放:SMTP客户發出退出命令,服務器在處理命令後進行響應,隨後關閉TCP連接。 [4] 

SMTPSMTP通信舉例

下面通過一個實例進行説明。在本例中,假設郵件從名為panwei@163. com的發件人電子郵件箱(運行SMTP客户進程,具體顯示為C)傳送到名為network@xmu. edu. cn的收件人電子信箱(運行SMTP服務器進程,具體顯示為S),具體的命令和響應信息如下:telnetwww.example.com25它打開一個從發送的機器到主機www.example.com的SMTP連接。 [5] 
S:(注:等待連接TCP的25號端口,該端口對應SMTP服務)

C:(注:打開與服務器的連接)

S: 220 xmu. edu. cn SMTP Service ready(注:服務器的TCP連接就緒)

C: HELO 163.com

S: 250 xmu. edu. cn says hello

C:MAIl. FROM:<panwei@163.com>

S:250 0K

C: RCPT TO:<network@xmu.edu.cn>

S:250 0K

C:DATA
S:354 Start mail input; end with<CRLF>.<CRLF>

C:…sends body of mail message..

C:…Dear xxx..

C:<CRLF>.<CRLF>

S:250 OK

C:QUIT
S: 221 xmu. edu. cn Service closing transmission channel

以上所示的是一個簡單的SMTP交換過程,包括了連接建立、郵件傳送和連接釋放三個具體過程:首先建立TCP連接,SMTP調用TCP協議的25號端口監聽連接請求,客户端發送HElO命令以標識發件人自己的身份,服務器做出響應。然後,客户端發送MAII)命令,服務器以OK作為Ⅱ嚮應,表明準備接收。客户端發送RCPT命令以標識電子郵件的收件人,可以有多個RCPT行,即一份郵件可以同時發送給多個收件人。服務器端則表示是否願意為收件人接收郵件。協商結束後,客户端用DATA命令發送信息,以<CRLF>表示結束輸入內容。最後,控制交互的任一端可選擇終止會話,為此它發出一個QUIT命令,另一端用命令221響應,表示同意終止連接,雙方將關閉連接。 [5] 
SMTP交換過程中服務器端發出的“250 0K”含義是一切都好。與使用其他協議一樣,程序只讀縮寫命令和每行開頭的三個數字,其餘文本是用於幫助用户調試郵件軟件。在命令成功時,服務器返回代碼250,如果失敗則返回代碼550(命令無法識別)、451(處理時出錯)、452(存儲空間不夠)、421(服務器不可用)等,354則表示開始信息輸入。 [5] 
SMTP的侷限性表現在只能發送ASCII碼格式的報文,不支持中文、法文、德文等,它也不支持語音、視頻的數據。通過MIME協議,對SMTP補充。MIME使用網絡虛擬終端(NVT)標準,允許非ASCII碼數據通過SMTP傳輸。 [5] 

SMTPSMTP安全和垃圾郵件

最初的SMTP的侷限之一在於它沒有對發送方進行身份驗證的機制。因此,後來定義了SMTP-AUTH擴展。
儘管有了身份認證機制,垃圾郵件仍然是一個主要的問題。但由於龐大的SMTP安裝數量帶來的網絡效應,大刀闊斧地修改或完全替代SMTP被認為是不現實的。Internet Mail 2000就是一個替代SMTP的建議方案。 [2] 
因此,出現了一些同SMTP工作的輔助協議。IRTF反垃圾郵件研究小組正在研究一些建議方案,以提供簡單、靈活、輕量級的、可升級的源端認證。最有可能被接受的建議方案是發件人策略框架協議。 [2] 
參考資料
  • 1.    胡學網總主編;周鳴爭主編;朱程,劉斌,侯加兵副主編.計算機網絡:安徽大學出版社,2014.05:第193頁
  • 2.    (美)特南鮑姆 著,潘愛民 譯.《計算機網絡》:清華大學出版社,2004年8月1日
  • 3.    趙偉艇主編.TCP/IP網絡基礎:河南科學技術出版社,2008.8:第175頁
  • 4.    叢佩麗編著.網絡操作系統管理與應用:中國鐵道出版社,2012.08:第215頁
  • 5.    潘偉,曹浪財,費嘉,徐素霞編著.計算機網絡:理論與實驗:廈門大學出版社,2013.12:第183頁