SMTP協議工作原理及原始命令碼

 1.smtp是工作在兩種情況下:一是電子郵件從客戶機傳輸到服務器;二是從某一個服務器傳輸到另一個
  服務器
2.smtp是個請求/響應協議,命令和響應都是基於ascii文本,並以cr和lf符結束。響應包括一個表示返 
  回狀態的三位數字代碼
3.smtp在tcp協議25號端口監聽連接請求
4.連接和發送過程:

a.建立tcp連接
b.客戶端發送helo命令以標識發件人自己的身份,然後客戶端發送mail命令
  服務器端正希望以ok作爲響應,表明準備接收
c.客戶端發送rcpt命令,以標識該電子郵件的計劃接收人,可以有多個rcpt行 
  服務器端則表示是否願意爲收件人接受郵件
d.協商結束,發送郵件,用命令data發送
e. 以.表示結束輸入內容一起發送出去
f.結束此次發送,用quit命令退出。


5.另外兩個命令:
vrfy---用於驗證給定的用戶郵箱是否存在,以及接收關於該用戶的詳細信息。
expn---用於擴充郵件列表。

6.郵件路由過程:
  smtp服務器基於‘域名服務dns中計劃收件人的域名來路由電子郵件。smtp服務器基於dns中的mx記錄
來路由電子郵件,mx記錄註冊了域名和相關的smtp中繼主機,屬於該域的電子郵件都應向該主機發送。

若smtp服務器mail.abc.com收到一封信要發到[email protected]:

a.sendmail請求dns給出主機sh.abc.com的cname記錄,如有,假若cname到shmail.abc.com,則再次
請求shmail.abc.com的cname記錄,直到沒有爲止
b.假定被cname到shmail.abc.com,然後sendmail請求@abc.com域的dns給出shmail.abc.com的mx記錄,
   shmail    mx   5   shmail.abc.com
                  10   shmail2.abc.com
c. sendmail最後請求dns給出shmail.abc.com的a記錄,即ip地址,若返回值爲1.2.3.4
d. sendmail與1.2.3.4連接,傳送這封給[email protected]的信到1.2.3.4這臺服務器的smtp後臺程序

7.smtp基本命令集:

命令       描述
------------------------------
helo      向服務器標識用戶身份
          發送者能欺騙,說謊,但一般情況下服務器都能檢測到。

mail      初始化郵件傳輸
          mail from:
rcpt      標識單個的郵件接收人;常在mail命令後面
          可有多個rcpt to:
data      在單個或多個rcpt命令後,表示所有的郵件接收人已標識,並初始化數據傳輸,以.結束。
vrfy      用於驗證指定的用戶/郵箱是否存在;由於安全方面的原因,服務器常禁止此命令
expn      驗證給定的郵箱列表是否存在,擴充郵箱列表,也常被禁用
help      查詢服務器支持什麼命令
noop      無操作,服務器應響應ok
quit      結束會話
rset      重置會話,當前傳輸被取消
--------------------------------

8. mail from命令中指定的地址是稱作 envelope from地址,不需要和發送者自己的地址是一致的。
   rcpt to 與之等同,指明的接收者地址稱爲envelope to地址,而與實際的to:行是什麼無關。
9.爲什麼沒有rcpt cc和rcpt bcc:?
   所有的接收者協商都通過rcpt to命令來實現,如果是bcc,則協商發送後在對方接收時被刪掉信封接收者
10.郵件被分爲信封部分,信頭部分和信體部分
   envelope from, envelope to 與message from:, message to:完全不相干。
   evnelope是由服務器主機間smtp後臺提供的,而message from/to是由用戶提供的。有無冒號也是區別。

11. 怎樣由信封部分檢查是否一封信是否是僞造的?
a. received行的關聯性。
   現在的smtp郵件傳輸系統,在信封部分除了兩端的內部主機處理的之個,考慮兩個公司防火牆之間
   的部分,若兩臺防火牆機器分別爲a和b,但接收者檢查信封received:行時發現經過了c.則是僞造的。
b. received:行中的主機和ip地址對是否對應如:
   receibed: from galangal.org (turmeric.com [104.128.23.115] by mail .bieberdorf.edu....
c. 被人手動添加在最後面的received行:
    received: from galangal.org ([104.128.23.115]) by mail .bieberdorf.edu (8.8.5)
    received: from lemongrass.org by galangal.org (8.7.3)
    received: from graprao.com by lemongrass.org (8.6.4)

發佈了13 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章