• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            子彈 の VISIONS

            NEVER back down ~~

            C++博客 首頁 新隨筆 聯系 聚合 管理
              112 Posts :: 34 Stories :: 99 Comments :: 0 Trackbacks
            來自:
              250WAA10568Messageacceptedfordelivery

              任務完成了,你可以繼續發送下封郵件,也可以斷開同服務器的連接。如果要斷開同服務器的連接就用QUIT命令。在這種情況下,服務器會返回一個代碼為221的回應并斷開連接。

              QUIT

              221ns.cinfo.ruclosingconnection

            -----------
            SMTP協議是TCP/IP協議族中的一員,主要對如何將電子郵件從發送方地址傳送到接收方地址,也即是對傳輸的規則做了規定。SMTP協議的通信模型并不復雜,主要工作集中在發送SMTP和接收SMTP上:首先針對用戶發出的郵件請求,由發送SMTP建立一條連接到接收SMTP的雙工通訊鏈路,這里的接收SMTP是相對于發送SMTP而言的,實際上它既可以是最終的接收者也可以是中間傳送者。發送SMTP負責向接收SMTP發送SMTP命令,而接收SMTP則負責接收并反饋應答。可大致用下面的通訊模型示意圖來表示:


            -------
            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收到一封信要發到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記錄,
            shmailMX5shmail.abc.com
            10shmail2.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后臺程序

            7.SMTP基本命令集:

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

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

            8.MAILFROM命令中指定的地址是稱作envelopefrom地址,不需要和發送者自己的地址是一致的。
            RCPTTO與之等同,指明的接收者地址稱為envelopeto地址,而與實際的to:行是什么無關。
            9.為什么沒有RCPTCC和RCPTBCC
            所有的接收者協商都通過RCPTTO命令來實現,如果是BCC,則協商發送后在對方接收時被刪掉信封接收者
            10.郵件被分為信封部分,信頭部分和信體部分
            envelopefrom,envelopeto與messagefrom:,messageto:完全不相干。
            evnelope是由服務器主機間SMTP后臺提供的,而messagefrom/to是由用戶提供的。有無冒號也是區別。

            11.怎樣由信封部分檢查是否一封信是否是偽造的?
            a.received行的關聯性。
            現在的SMTP郵件傳輸系統,在信封部分除了兩端的內部主機處理的之個,考慮兩個公司防火墻之間
            的部分,若兩臺防火墻機器分別為A和B,但接收者檢查信封received:行時發現經過了C.則是偽造的。
            b.received:行中的主機和IP地址對是否對應如:
            Receibed:fromgalangal.org(turmeric.com[104.128.23.115]bymail.bieberdorf.edu....
            c.被人手動添加在最后面的received行:
            Received:fromgalangal.org([104.128.23.115])bymail.bieberdorf.edu(8.8.5)
            Received:fromlemongrass.orgbygalangal.org(8.7.3)
            Received:fromgraprao.combylemongrass.org(8.6.4)
            --------
            SMTP協議的命令和應答
            從前面的通訊模型可以看出SMTP協議在發送SMTP和接收SMTP之間的會話是靠發送SMTP的SMTP命令和接收SMTP反饋的應答來完成的。在通訊鏈路建立后,發送SMTP發送MAIL命令指令郵件發送者,若接收SMTP此時可以接收郵件則作出OK的應答,然后發送SMTP繼續發出RCPT命令以確認郵件是否收到,如果接收到就作出OK的應答,否則就發出拒絕接收應答,但這并不會對整個郵件操作造成影響。雙方如此反復多次,直至郵件處理完畢。SMTP協議共包含10個SMTP命令,列表如下:

            SMTP命令命令說明
            HELLO<domain><CRLF>識別發送方到接收SMTP的一個HELLO命令
            MAILFROM:<reverse-path><CRLF><reverse-path>為發送者地址。此命令告訴接收方一個新郵件發送的開始,并對所有的狀態和緩沖區進行初始化。此命令開始一個郵件傳輸處理,最終完成將郵件數據傳送到一個或多個郵箱中。
            RCPTTO:<forward-path><CRLF><forward-path>標識各個郵件接收者的地址
            DATA<CRLF>
            接收SMTP將把其后的行為看作郵件數據去處理,以<CRLF>.<CRLF>標識數據的結尾。
            REST<CRLF>退出/復位當前的郵件傳輸
            NOOP<CRLF>要求接收SMTP僅做OK應答。(用于測試)
            QUIT<CRLF>要求接收SMTP返回一個OK應答并關閉傳輸。
            VRFY<string><CRLF>驗證指定的郵箱是否存在,由于安全因素,服務器多禁止此命令。
            EXPN<string><CRLF>驗證給定的郵箱列表是否存在,擴充郵箱列表,也常禁止使用。
            HELP<CRLF>查詢服務器支持什么命令

            注:<CRLF>為回車、換行,ASCII碼分別為13、10(十進制)。

              SMTP協議的每一個命令都會返回一個應答碼,應答碼的每一個數字都是有特定含義的,如第一位數字為2時表示命令成功;為5表失敗;3表沒有完成。一些較復雜的郵件程序利用該特點,首先檢查應答碼的首數字,并根據其值來決定下一步的動作。下面將SMTP的應答碼列表如下:

            應答碼說明
            501參數格式錯誤
            502命令不可實現
            503錯誤的命令序列
            504命令參數不可實現
            211系統狀態或系統幫助響應
            214幫助信息
            220<domain>服務就緒
            221<domain>服務關閉
            421<domain>服務未就緒,關閉傳輸信道
            250要求的郵件操作完成
            251用戶非本地,將轉發向<forward-path>
            450要求的郵件操作未完成,郵箱不可用
            550要求的郵件操作未完成,郵箱不可用
            451放棄要求的操作;處理過程中出錯
            551用戶非本地,請嘗試<forward-path>
            452系統存儲不足,要求的操作未執行
            552過量的存儲分配,要求的操作未執行
            553郵箱名不可用,要求的操作未執行
            354開始郵件輸入,以"."結束
            554操作失敗
            --------








            久久精品中文字幕大胸| 欧美午夜A∨大片久久 | 国产ww久久久久久久久久| 欧洲成人午夜精品无码区久久| 久久伊人精品青青草原日本| 久久99精品国产麻豆不卡| 久久人人爽人爽人人爽av| 日韩久久久久中文字幕人妻| 免费一级做a爰片久久毛片潮| 色欲综合久久躁天天躁| 久久亚洲春色中文字幕久久久| 久久丫精品国产亚洲av| 久久精品国产免费| 亚洲国产精品一区二区久久| 久久精品中文字幕第23页| 久久久久久免费视频| 久久国产精品成人免费| 欧美久久亚洲精品| 亚洲人成伊人成综合网久久久| 久久精品国产亚洲av影院| 国内精品久久久久久麻豆| 精品久久久久久中文字幕大豆网| 久久99精品国产麻豆宅宅| 色综合久久88色综合天天 | 99久久超碰中文字幕伊人| 久久福利片| 2021国内精品久久久久久影院| 久久久久一区二区三区| 18禁黄久久久AAA片| 国产激情久久久久影院小草| 亚洲国产精品久久电影欧美| 久久综合九色综合精品| 国产麻豆精品久久一二三| 超级碰碰碰碰97久久久久| 久久香蕉国产线看观看99| 伊人久久大香线蕉av不卡| 久久精品三级视频| 久久久亚洲欧洲日产国码二区| 久久久国产打桩机| 国产成人久久777777| 久久精品成人免费看|