1. 程式人生 > >SMTP協議解析

SMTP協議解析

25埠

SMTP的連線和傳送過程

 

(a)建立TCP連線

 

(b)客戶端傳送HELO命令以標識發件人自己的身份,然後客戶端傳送MAIL命令;

 

         伺服器端正希望以OK作為響應,表明準備接收

 

(c)客戶端傳送RCPT命令,以標識該電子郵件的計劃接收人,可以有多個RCPT行;

 

         伺服器端則表示是否願意為收件人接收郵件

 

(d)協商結束,傳送郵件,用命令DATA傳送

 

(e)以.表示結束輸入內容一起傳送出去

 

(f)結束此次傳送,用QUIT命令退出

 

 

SMTP常用的命令

 

SMTP命令不區分大小寫,但引數區分大小寫。常用命令如下:

 

HELO ——向伺服器標識使用者身份傳送者能欺騙、說謊,但一般情況下伺服器都能檢測到

 

RCPT TO: ——用來標誌郵件接收者的地址,常用在MAIL FROM後,可以有多個RCPT TO

 

DATA ——將之後的資料作為資料傳送,以.標誌資料的結尾

 

REST ——重置會話,當前傳輸被取消

 

NOOP ——要求伺服器返回OK應答,一般用作測試

 

QUIT ——結束會話

 

VRFY ——驗證指定的郵箱是否存在,由於安全方面的原因,伺服器大多禁止此命令

 

EXPN ——驗證給定的郵箱列表是否存在,由於安全方面的原因,伺服器大多禁止此命令

 

HELP ——查詢伺服器支援什麼命令

 

SMTP常用的響應

 

501——引數格式錯誤

 

502——命令不可實現

 

503——錯誤的命令序列

 

504——命令引數不可實現

 

211——系統狀態或系統幫助響應

 

214——幫助資訊

 

220——伺服器就緒

 

221——服務關閉

 

421——伺服器未就緒,關閉傳輸通道

 

250——要求的郵件操作完成

 

251——使用者非本地,將轉發向

 

450——要求的郵件操作未完成,郵箱不可用

 

550——要求的郵件操作未完成,郵箱不可用

 

451——放棄要求的操作,處理過程中出錯

 

551——使用者非本地,請嘗試

 

452——系統儲存不足,要求的操作未執行

 

552——過量的儲存分配,要求的操作未執行

 

553——郵箱名不可用,要求的操作未執行

 

354——開始郵件輸入,以“.”結束

 

554——操作失敗