程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> RFC821-簡單郵件傳輸協議SMTP中文版-1

RFC821-簡單郵件傳輸協議SMTP中文版-1

編輯:關於PHP編程

3.7. 域   域是最近被引入ARPA Internet郵件系統的。使用域可以使地址空間從一 個平面的普通字符串主機名變成全局地址的一個層次結構。主機由一個域名取 代,起始主機是由一系列元串組成,它們由逗號按最特殊到一般的順序排列。   例如,"USC-ISIF.ARPA","Fred.Cambridge.UK"和"PC7.LCS.MIT.ARPA"可 能是主機-域標識符。   無論域名在SMTP中如何使用,只有正式的名稱才可以被使用,不可以使用 假名或昵稱。 3.8. 改變角色   TURN命令可以用來改變在傳輸信道上通信的程序的角色。如果程序A現在是 發送SMTP,它發送TURN命令並接到OK應答(250)後,它就變為接收SMTP了。同 理,程序B也可以從接收SMTP變為發送SMTP。若要拒絕改變角色,接收方可以發 送502作為應答。   注意:此命令是可選的。在使用TCP的傳輸信道時,一般不使用此命令。然 而,當建立傳輸信道的代價比較大時,此命令很有用。例如,此命令可以支持一 般公共交換電話系統作為傳輸信道。 4. SMTP說明 4.1. SMTP命令 4.1.1. 命令語法   SMTP命令定義了郵件傳輸或由用戶定義的系統功能。它的命令是由 結束的字符串。而在帶有參數的情況下,命令本身由和參數分開,如果 未帶參數可以直接和連接。郵箱的語法格式必須和接收站點的格式一致。 下面討論SMTP命令和應答。   發送郵件操作涉及到不同的數據對象,它們由不同的參數相互連接。回 復路徑就是MAIL命令的參數,而轉發路徑則是RCPT命令的參數,郵件日期是 DATA命令的參數。這些參數或者數據對象必須跟在命令後。這種模式也就要 求有不同的緩沖區來存儲這些對象,也就是說,有一個回復路徑緩沖區,一 個轉發路徑緩沖區,一個郵件內容緩沖區。特定的命令產生自己的緩沖區, 或使一個或多個緩沖的內容被清除。   HELLO (HELO)   此命令用於向接收SMTP確認發送SMTP。參數域包括發送SMTP的主機名。 接收SMTP通過連接確認命令來向發送SMTP確認接收SMTP。引命令和OK響應確 認發送和接收SMTP進入了初始狀態,也就是說,沒有操作正在執行,所有狀態 表和緩沖區已經被子清除。   MAIL (MAIL)   此命令用於開始將郵件發送到一個多個郵箱中。參數域包括回復路徑。 返回路徑中包括了可選的主機和發送者郵箱列表。當有主機列表時,它是一 個回復路徑源,它說明此郵箱是由在表中的主機一一傳遞發送(第一個主機 是最後一個接收到此郵件的主機)過來的。此表也有作向發送者返回非傳遞信 號的源路徑。因為每個傳遞主機地址都被加在此表起始處,它就必須使用發送 IPCE而不是接收IPCE(如果它們不是一個IPCE的話)清楚的名稱。一些出錯信 息的回復路徑可能就是空的。   此命令清除回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區,並且將 此命令的回復路徑信息插入到回復路徑緩沖區中。   RECIPIENT (RCPT)   此命令用於確定郵件內容的唯一接收者;多個接收者將由多個此命令指定。 轉發路徑中包括一個可選的主機和一個必須的目的郵箱。當出現主機列表時, 這就是一個源路徑,它指明郵件必須向列表中的上一個主機發送。如果接收 SMTP未實現郵件的傳遞發送,就會返回如未知本地用戶(550)的信息給用戶。   當郵件被傳遞發送時,傳遞主機必須將自己的名稱由轉發路徑的開始處 移至回復路徑的結束處。當郵件最終到達目的地時,接收SMTP將以它的主機郵 件格式自己的名稱插入目標郵件中。例如,由傳遞主機A接收的帶有如下參 數的郵件時,   FROM:   TO:<@HOSTA.ARPA,@HOSTB.ARPA:[email protected]>   將會變成如下形式:   FROM:<@HOSTA.ARPA:[email protected]>   TO:<@HOSTB.ARPA:[email protected]>.   此命令導致它的轉發路徑參數加入轉發路徑緩沖區中。   DATA (DATA)   接收者將跟在命令後的行作為郵件內容。此命令導致此命令後的郵件內容 加入郵件內容緩沖區。郵件內容可以包括所有128個ASCII碼字符。郵件內容由只 包括一個句號的行結束,也就是如下的字符序列:".",它指示了 郵件的結束。   郵件內容的結束指示要求接收者現在就處理保存的郵件內容。此過程將回復 路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區的內容全部清空。如果操作成功, 接收者必須返回OK應答;如果失敗也必須返回失敗應答。   當接收SMTP收到一條信息時,無論是用作轉發還是此郵件已經到達目的地, 它都必須在郵件內容的開始處加上時間戳這一行,這一行指示了接收到郵件主 機和發出此郵件主機的標識,以及接收到郵件內容的時間和日期。轉發的信件 將有多行這樣的時間戳。當接收SMTP作最後一站的傳送時,它將返回路徑信息 行插入郵件中。此行包括了發送命令中的的信息。在這裡,最 後一站的傳送的意思是郵件將被送到目的用戶手中,但在一些情況下,郵件可 能需要更進一步的加工並由另外的郵件系統傳送。   可能在返回路徑中的郵箱與實際發送的郵件不一致,這個情況可能發生在 需要傳送一個特定的錯誤處理信箱而不是信件發送者那裡。上面所述說明了, 最後的郵件內容由一個返回路徑行,和在其後的一個或多個時間戳行構成。這 些行後面是郵件內容的頭和體信息。   當處理後面的郵件數據指示部分成功時就需要特定的說明。這種情況可能 發生在發送SMTP發現當郵件需要傳送給多個用戶時,只能夠成功地向其中的一 部分發送信息這種情況下。在這種情況下,必須對DATA命令發送OK應答,而接 收SMTP組織並發送一個"不可傳遞郵件"信息到信息的發送者。在此信息中或者 發送一個不成功接收者的列表,或者每次發送一個不成接收者,而發送多次。 所有不可傳遞郵件信息由MAIL命令發送。   返回路徑和接收時間戳例子   Return-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:[email protected]>   Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST   Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST   Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST   Date: 27 Oct 81 15:01:01 PST   From: [email protected]   Subject: Improved Mailing System Installed   To: [email protected]   This is to inform you that ...   SEND (SEND)   此命令用於開始一個發送命令,將郵件發送到一個或多個終端上。參數 域包括了一個回復路徑,此命令如果成功就將郵件發送到終端上了。   回復路徑包括一個可選的主機列表和發送者郵箱。當出現主機列表時, 表示這是一個傳送路徑,郵件就是經過這個路徑上的每個主機發送到這裡的 (列表上第一個主機是最後經手的主機)。此表用於返回非傳遞信號到發送者。 因為每個傳遞主機地址都被加在此表起始處,它就必須使用發送IPCE而不是接 收IPCE(如果它們不是一個IPCE的話)清楚的名稱。一些出錯信息的回復路徑 可能就是空的。   此命令清除回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區,並且將 此命令的回復路徑信息插入到回復路徑緩沖區中。   SEND OR MAIL (SOML)   此命令用於開始一個郵件操作將郵件內容傳送到一個或多個終端上,或者 傳送到郵箱中。對於每個接收者,如果接收者終端打開,郵件內容將被傳送到 接收者的終端上,否則就送到接收者的郵箱中。參數域包括回復路徑,如果成 功地將信息送到終端或郵箱中此命令成功。   回復路徑包括一個可選的主機列表和發送者郵箱。當出現主機列表時,表 示這是一個傳送路徑,郵件就是經過這個路徑上的每個主機發送到這裡的(列 表上第一個主機是最後經手的主機)。此表用於返回非傳遞信號到發送者。因 為每個傳遞主機地址都被加在此表起始處,它就必須使用發送IPCE而不是接收 IPCE(如果它們不是一個IPCE的話)清楚的名稱。一些出錯信息的回復路徑可 能就是空的。   此命令清除回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區,並且將 此命令的回復路徑信息插入到回復路徑緩沖區中。   SEND AND MAIL (SAML)   此命令用於開始一個郵件操作將郵件內容傳送到一個或多個終端上,並傳 送到郵箱中。如果接收者終端打開,郵件內容將被傳送到接收者的終端上和接 收者的郵箱中。參數域包括回復路徑,如果成功地將信息送到郵箱中此命令成 功。   回復路徑包括一個可選的主機列表和發送者郵箱。當出現主機列表時,表 示這是一個傳送路徑,郵件就是經過這個路徑上的每個主機發送到這裡的(列 表上第一個主機是最後經手的主機)。此表用於返回非傳遞信號到發送者。因 為每個傳遞主機地址都被加在此表起始處,它就必須使用發送IPCE而不是接收 IPCE(如果它們不是一個IPCE的話)清楚的名稱。一些出錯信息的回復路徑可 能就是空的。   此命令清除回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區,並且將 此命令的回復路徑信息插入到回復路徑緩沖區中。   RESET (RSET)   此命令指示當送郵件操作將被放棄。任何保存的發送者,接收者和郵件內 容應該被拋棄,所有緩沖區和狀態表應該被清除,接收方必須返回OK應答。   VERIFY (VRFY)   此命令要求接收者確認參數是一個用戶。如果這是(已經知道的)用戶名, 返回用戶的全名和指定的郵箱。此命令對回復路徑緩沖區,轉發路徑緩沖區和郵 件內容緩沖區沒有影響。   EXPAND (EXPN)   此命令要求接收者確認參數指定了一個郵件發送列表,如果是一個郵件發送 列表,就返回表中的成員。如果這是(已經知道的)用戶名,返回用戶的全名和 指定的郵箱。此命令對回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區沒有 影響。   HELP (HELP)   此命令導致接收者向HELP命令的發送者發出幫助信息。此命令可以帶參數, 並返回特定的信息作為應答。此命令對回復路徑緩沖區,轉發路徑緩沖區和郵件 內容緩沖區沒有影響。   NOOP (NOOP)   此命令不影響任何參數和已經發出的命令。它只是說明沒有任何操作而不是 說明接收者發送了一個OK應答。此命令對回復路徑緩沖區,轉發路徑緩沖區和郵

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved