日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

[转]SMTP协议

發布時間:2024/9/19 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 [转]SMTP协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SMTP 協議簡介

  SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協議,是一種提供可靠且有效電子郵件傳輸的協議。SMTP是建立在FTP文件傳輸服務上的一種郵件服務,主要用于傳輸系統之間的郵件信息并提供與來信有關的通知。
  SMTP目前已是事實上的在Internet傳輸E-Mail的標準,是一個相對簡單的基于文本的協議。在其之上指定了一條消息的一個或多個接收者(在大多數情況下被確定是存在的),然后消息文本就傳輸了。可以很簡單地通過Telnet程序來測試一個SMTP服務器,SMTP使用TCP端口25。要為一個給定的域名決定一個SMTP服務器,需要使用MX(Mail eXchange)DNS。
  在20世紀80年代早期SMTP開始被廣泛地使用。當時它只是作為UUCP的補充,UUCP更適合于處理在間歇連接的機器間傳送郵件。相反SMTP在發送和接收的機器始終都聯網的情況下工作得最好。
  SMTP獨立于特定的傳輸子系統,且只需要可靠有序的數據流信道支持。SMTP重要特性之一是其能跨越網絡傳輸郵件,即“SMTP郵件中繼”。通常,一個網絡可以由公用因特網上TCP可相互間訪問的主機、防火墻分隔的TCP/IP網絡上TCP可相互訪問的主機,以及其他LAN/WAN中的主機利用非TCP傳輸層協議組成。使用SMTP,可實現相同網絡上處理機之間的郵件傳輸,也可通過中繼器或網關是實現某處理機與其他網絡之間的郵件傳輸。
  在這種方式下,郵件的發送可能經過從發送端到接收端路徑上的大量中間中繼器或網關主機。域名服務系統(DNS)的郵件交換服務器可以用來識別出傳輸郵件的下一跳IP地址。
  Sendmail是最早實現SMTP的郵件傳輸代理之一。到2001年至少有50個程序將SMTP 實現為一個客戶端(消息的發送者)或一個服務器(消息的接受者)。一些其他的流行的SMTP服務器包括Philip Hazel 的exim,IBM的Postfix,D.J.Bernstein的Qmail,以及Microsoft Exchange Server.
  由于這個協議開始是基于純ASCⅡ文本的,在二進制文件上處理得并不好。后來開發了用來編碼二進制文件的標準,如MIME,以使其通過SMTP來傳輸。今天,大多數SMTP服務器都支持8位MIME擴展,它使二進制文件的傳輸變得幾乎和純文本一樣簡單。
  ( 注意:SMTP是一個"推"的協議,它不允許根據需要從遠程服務器上“拉”來消息。要做到這點,郵件客戶端必須使用POP3或IMAP上。另一個,SMTP服務器可以使用ETRN(Extended Turn,擴展回車)命令在SMTP上觸發一個發送。)
  垃圾郵件仍然是個重要的問題。原始的SMTP協議的局限之一在于它沒有為發送方進行認證的功能。因此定義了SMTP-AUTH 擴展。由于SMTP 巨大安裝基礎的網絡效應,廣闊地修改SMTP或者完全替代它被認為是不現實的。Internet Mail 2000 就是這樣一個為替換而做的建議。IRTF 的反垃圾郵件研究小組正在研究一些提供簡單、靈活、輕量級的、可升級的源端認證的建議。最有可能被接受的建議是Sender Policy Framework 協議。
  

SMTP協議命令和工作原理

  
  SMTP命令是發送于SMTP主機之間的ASCⅡ信息,可能使用到的命令如下表所示。
  SMTP基本命令集:

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

MAIL      初始化郵件傳輸
          mail form :
RCPT      標識單個的郵件接收人;常在MAIL命令后面  可有多個rcpt to:
DATA      在單個或多個RCPT命令后,表示所有的郵件接收人已標識,并初始化數據傳輸結束。
VRFY      用于驗證指定的用戶/郵箱是否存在;由于安全方面的原因,服務器常禁止此命令
EXPN      驗證給定的郵箱列表是否存在,擴充郵箱列表,也常被禁用
HELP      查詢服務器支持什么命令
NOOP      無操作,服務器應響應OK
QUIT      結束會話
RSET      重置會話,當前傳輸被取消

  SMTP是工作在兩種情況下:一是電子郵件從客戶機傳輸到服務器:二是從某一個服務器傳輸到另一個服務器。SMTP也是個請求/響應協議,命令和響應都是基于ASCⅡ文本,并以CR和LF符結束。響應包括一個表示返回狀態的三位數字代碼。SMTP在TCP協議25號端口監聽連續請求。
  連接和發送過程如下:
  (1)建立TCP 連接。
  (2)客戶端發送HELO命令以標識發件人自己的身份,然后客戶端發送MAIL命令;服務器端正希望以OK作為響應,表明準備接收。
  (3)客戶端發送RCPT命令,以標識該電子郵件的計劃接收人,可以有多個RCPT行;服務器端則表示是否愿意為收件人接收郵件。
  (4)協商結束,發送郵件,用命令DATA發送。
  (5)以“.”號表示結束輸入內容一起發送出去,結束此次發送,用QUIT命令退出。

  SMTP協議的郵件路由過程。

  

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

若smtp服務器mail.abc.com收到一封信要發到shuser@sh.abc.com:

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連接,傳送這封給shuser@sh.abc.com的信到1.2.3.4這臺服務器的smtp后臺程序

補充說明:

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

4. 怎樣由信封部分檢查是否一封信是否是偽造的?
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)

本篇文章來源于 中國協議分析網|www.cnpaf.net 原文鏈接:http://www.cnpaf.net/Class/SMTP/200810/23042.html

作者:chhuic

出處:http://chhuic.cnblogs.com
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

總結

以上是生活随笔為你收集整理的[转]SMTP协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。