簡單郵件傳送協議,簡稱SMTP(Simple Mail Transfer Protocol)。緩存
一個電子郵件系統應具備三個主要組成構件,用戶代理、郵件服務器、SMTP和POP3(注:POP3是郵局協議(Post Office Protocol)的版本3),以下圖:服務器
說明:3d
一、用戶代理UA(User Agent)就是用戶與電子郵件系統的接口,在大多數狀況下它就是運行在用戶PC機中的一個程序,所以又稱爲電子郵件客戶端軟件,如Outlook Express、Foxmail等;代理
二、電子郵件地址的通常格式爲:blog
收件人郵箱名@郵箱所在主機的域名接口
SMTP協議簡介:進程
SMTP規定了在兩個互相通訊的SMTP進程之間應如何交換信息。因爲SMTP採用C/S格式,所以負責發送郵件的SMTP進程就是SMTP客戶,而負責接受郵件的SMTP進程就是SMTP服務器。SMTP規定了14條命令和21種應答信息。每條命令用4個字母組成,而每一種應答信息通常只有一行信息,由一個3位數字的代碼開始,後面附上(也可不附)很簡單的文字說明。其主要過程以下:get
一、鏈接創建:input
SMTP客戶每隔必定時間對郵件緩存掃描一次。如發現有郵件,就使用SMTP的熟知端口號碼25與接收方郵件服務器的SMTP服務器創建TCP鏈接。在創建鏈接後,接收方SMTP服務器要發出「220 Service ready」(服務就緒)。而後SMTP客戶向SMTP服務器發送HELO命令,附上發送方的主機名。SMTP服務器如有能力接收郵件,則回答:「250 OK」,表示已準備好接收。域名
注:SMTP不使用中間的郵件服務器。
二、郵件傳送
1)、郵件的傳送從MAIL命令開始。MAIL命令後面有發件人的地址。如MAIL FROM:<test@163.com> 。服務器給出響應迴應;
2)、接下來即是一個或多個RCPT命令,取決於把同一個郵件發送給一個或多個收件人,其格式爲RCPT TO:<收件人地址>
3)、再接下來就是DATA命令,表示要開始傳送郵件的內容了。SMTP服務器返回的信息是:354 Start mail input;end with <CRLF>.<CRLF> ;這裏<CRLF>是回車換行的意思。發送完畢後,在發送<CRLF>.<CRLF>表示郵件內容結束。
三、鏈接釋放
郵件發送完畢後,SMTP客戶發送QUIT命令。SMTP服務器返回的信息是:221 服務關閉,表示SMTP贊成釋放TCP鏈接。郵件傳送的所有過程即結束。