1. 什麼是SMTP
SMTP是控制兩個郵件伺服器之間電子郵件報文交換的簡單協議。該協議用於網際網路,並由TETF定義。使用SMTP,一個進程可以將郵件傳輸到同一網路上的其他進程,或者經由兩個網路都可訪問的中繼器或網關進程傳輸到其他一些網路。郵件報文在其從發件人到最終的收件人路徑上可能會通過許多的中間中繼器或網關主機。
SM'TP採用客戶機/伺服器關系。客戶機是發送郵件的系統。它通過TCP連接建立了到SMTP伺服器的雙向傳輸信道。 當發件人和收件人通過同一傳輸服務(在同一網路上)連接起來時,郵件直接在雙方之間進行傳輸。當兩者沒有連接到同一傳輸服務時,郵件通過一個或更多的中繼SM'TP伺服器進行傳輸。大型機構會建立自己的中繼伺服器來管理進出郵件,這些伺服器通常都始終處於聯機狀態,並提供各種各樣的安全功能。
郵件伺服器運行報文處理協議,例如POP3(郵局協議版本3)和IMAP4(網際網路郵件訪問協議版本4),兩者都提供郵件緩存和郵件轉發服務,而且都使用SM'I甲來交換郵件。SMTP就像郵件承運者,而POP和IMAP4則像郵局。IMAP4是一種新的而且更為靈活的協議,它是POP3的替代協議。 當用戶連接到郵件伺服器時,伺服器驗證用戶身份並賦予他們訪問其信箱的許可權。然後用戶將郵件下載到其計算機上。IMAP4改進了這種模型,允許用戶將郵件保存在他們在郵件伺服器上的信箱中,而不是自動將郵件下載到計算機上。這對於遠程移動用戶來說是非常有用的。
SMTP報文可能通過許多跳才能傳輸到最終目的地。在此情況下,在中繼伺服器間建立了一系列的連接。從一個伺服器到下一個伺服器之間有交接的責任,而且每一伺服器必須要麼傳送報文要麼向發件人回報傳送失敗。
SMTP使用基本的請求和響應機制來傳輸郵件,幾個簡單的命令使得這種交換成為可能。這些命令由ASCII(文本)構成。簡單的命令結構便於為任何平台建立郵件伺服器和客戶機。客戶端通過發送一系列命令啟動郵件處理,這些命令指定了郵件的發件人與目的地和報文內容傳輸,伺服器端對每個命令作出響應。通常每次進行一個命令操作,但是RFC 2920(SMTP Service Extension:for Command Pipelining,September 2000)中所述的管道功能允許在單個TCP發送操作中向伺服器發送多個命令。
一個提供電子郵件服務的Internet協議。
2. SMTP地址的什麼是SMTP
SMTP(Simple Mail Transfer Protocol)是一種提供可靠且有效電子郵件傳輸的協議。SMTP是建模在FTP文件傳輸服務上的一種郵件服務,主要用於傳輸系統之間的郵件信息並提供來信有關的通知。SMTP設計基於以下通信模型:針對用戶的郵件請求,發送SMTP與接收SMTP之間建立一個雙向傳送通道。接收SMTP可以是最終接收者也可以是中間傳送者,即「SMTP郵件中繼」。SMTP命令由發送SMTP發出,由接收SMTP接收,而應答則反方面傳送。在網際網路上這個雙向傳送通道是一個TCP連接。為SMTP服務分配的TCP埠號是25。所以,可以用「TCPPORT =25」來判斷一個TCP流是否屬於一個SMTP會話,而設置包捕獲時的過濾規則。
SMTP 是一種提供可靠且有效電子郵件傳輸的協議。 SMTP 是建模在 FTP 文件傳輸服務上的一種郵件服務,主要用於傳輸系統之間的郵件信息並提供來信有關的通知。
SMTP 獨立於特定的傳輸子系統,且只需要可靠有序的數據流信道支持。 SMTP 重要特性之一是其能跨越網路傳輸郵件,即「SMTP 郵件中繼」。通常,一個網路可以由公用互聯網上 TCP 可相互訪問的主機、防火牆分隔的 TCP/IP 網路上 TCP 可相互訪問的主機,及其它 LAN/WAN 中的主機利用非 TCP 傳輸層協議組成。使用 SMTP ,可實現相同網路上處理機之間的郵件傳輸,也可通過中繼器或網關實現某處理機與其它網路之間的郵件傳輸。
在這種方式下,郵件的發送可能經過從發送端到接收端路徑上的大量中間中繼器或網關主機。域名服務系統(DNS)的郵件交換伺服器可以用來識別出傳輸郵件的下一跳 IP 地址。
3. smtp協議是指
SMTP協議一般指SMTP,SMTP是一種提供可靠且有效的電子郵件傳輸的協議。SMTP是建立在FTP文件傳輸服務上的一種郵件服務,主要用於系統之間的郵件信息傳遞,並提供有關來信的通知。
SMTP獨立於特定的傳輸子系統,且只需要可靠有序的數據流信道支持,SMTP的重要特性之一是其能跨越網路傳輸郵件,即「SMTP郵件中繼」。使用SMTP,可實現相同網路處理進程之間的郵件傳輸,也可通過中繼器或網關實現某處理進程與其他網路之間的郵件傳輸。
(3)smtp用於啟動郵遞處理命令擴展閱讀:
工作過程
SMTP協議的工作過程可分為如下3個過程:
1、建立連接:在這一階段,SMTP客戶請求與伺服器的25埠建立一個TCP連接。一旦連接建立,SMTP伺服器和客戶就開始相互通告自己的域名,同時確認對方的域名。
2、郵件傳送:利用命令,SMTP客戶將郵件的源地址、目的地址和郵件的具體內容傳遞給SMTP伺服器,SMTP伺服器進行相應的響應並接收郵件。
3、連接釋放:SMTP客戶發出退出命令,伺服器在處理命令後進行響應,隨後關閉TCP連接。
參考資料來源:網路-SMTP協議
4. 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.e.... c. 被人手動添加在最後面的received行: Received: from galangal.org ([104.128.23.115]) by mail .bieberdorf.e (8.8.5) Received: from lemongrass.org by galangal.org (8.7.3) Received: from graprao.com by lemongrass.org (8.6.4)
5. SMTP是什麼意思
簡單郵件傳輸協議(SMTP)的目標是可靠高效地傳送郵件,它獨立於傳送子系統而且僅要求一條可以保證傳送數據單元順序的通道。附錄A,B,C和D描述了不同傳送服務下SMTP的使用。在名詞表中還定義了本文檔中使用的術語。
SMTP的一個重要特點是它能夠在傳送中接力傳送郵件,傳送服務提供了進程間通信環境(IPCE),此環境可以包括一個網路,幾個網路或一個網路的子網。理解到傳送系統(或IPCE)不是一對一的是很重要的。進程可能直接和其它進程通過已知的IPCE通信。郵件是一個應用程序或進程間通信。郵件可以通過連接在不同IPCE上的進程跨網路進行郵件傳送。更特別的是,郵件可以通過不同網路上的主機接力式傳送。
是網際網路電子郵件系統首要的應用 層協議。它使用由TCP提供的可靠的數據傳輸服務把郵件消息從發信人的郵件伺服器傳送到收信人的郵件伺服器。跟大多數應用層協議一樣,SMTP也存在兩個 端:在發信人的郵件伺服器上執行的客戶端和在收信人的郵件伺服器上執行的伺服器端。SMTP的客戶端和伺服器端同時運行在每個郵件伺服器上。當一個郵件服 務器在向其他郵件伺服器發送郵件消息時,它是作為SMTP客戶在運行。當一個郵件伺服器從其他郵件伺服器接收郵件消息時,它是作為SMTP伺服器在運行。
SMTP協議與人們用於面對面交互的禮儀之間有許多相似之處。首先,運行在發送端郵件伺服器主機上的SMTP客戶,發起建立一個到運行在接收端郵件服務 器主機上的SMTP伺服器埠號25之間的TCP連接。如果接收郵件伺服器當前不在工作,SMTP客戶就等待一段時間後再嘗試建立該連接。這個連接建立之 後,SMTP客戶和伺服器先執行一些應用層握手操作。就像人們在轉手東西之前往往先自我介紹那樣,SMTP客戶和伺服器也在傳送信息之前先自我介紹一下。 在這個SMTP握手階段,SMTP客戶向伺服器分別指出發信人和收信人的電子郵件地址。彼此自我介紹完畢之後,客戶發出郵件消息。SMTP可以指望由 TCP提供的可靠數據傳輸服務把該消息無錯地傳送到伺服器。如果客戶還有其他郵件消息需發送到同一個伺服器,它就在同一個TCP連接上重復上述過程;否 則,它就指示TCP關閉該連接。[1]
編輯本段2. SMTP模型
SMTP設計基於以下通信模型:針對用戶的郵件請求,發送SMTP建立與接收SMTP之間建立一個雙向傳送通道。接收SMTP可以是最終接收者也可以是中間傳送者。SMTP命令由發送SMTP發出,由接收SMTP接收,而應答則反方面傳送。
一旦傳送通道建立,SMTP發送者發送MAIL命令指明郵件發送者。如果
SMTP接收者可以接收郵件則返回OK應答。SMTP發送者再發出RCPT命令確認郵件是否接收到。如果SMTP接收者接收,則返回OK應答;如果不能接收到,則發出拒絕接收應答(但不中止整個郵件操作),雙方將如此重復多次。當接收者收到全部郵件後會接收到特別的序列,如果接收者成功處理了郵件,則返回OK應答。
SMTP提供傳送郵件的機制,如果接收方與發送方連接在同一個傳送服務下時,郵件可以直接由發送方主機傳送到接收方主機;或者,當兩者不在同一個傳送服務下時,通過中繼SMTP伺服器傳送。為了能夠對SMTP伺服器提供中繼能力,它必須擁有最終目的主機地址和郵箱名稱。
MAIL命令參數是回復路徑,它指定郵件從何處來;而RCPT命令的參數是轉發路徑的,它指定郵件向何處去。向前路徑是源路徑,而回復路徑是返迴路徑(它用於發生錯誤時返回郵件)。
當同一個消息要發往不同的接收者時,SMTP遇到了向不同接收者發送同一份數據的復製品的問題,郵件命令和應答有一個比較奇怪的語法,應答也有一個數字代碼。在下面,例子中可以看到哪些使用實際的命令和應答。完整的命令和應答在第四節。
命令與應答對大小寫不敏感,也就是說,命令和應答可以是大寫,小寫或兩者的混合,但這一點對用戶郵件名稱卻不一定是對的,因為有的主機對用戶名大小寫是敏感的。這樣SMTP實現中就將用戶郵箱名稱保留成初始時的樣子,主機名稱對大小寫不敏感。
命令與應答由ASCⅡ字母表組成,當傳送服務提供8位位元組傳送通道,每7位字元正確傳送,而最高位被填充為0。當指定一般的命令或應答格式後,參數會由一些類似於語言的字元串表示出來,如"<string>"或"<reverse-path>",這里尖括弧表示這是一種類似於語言的變數。
編輯本段3. SMTP過程
本節提供了SMTP中的一些過程。頭一個說明的是基本發送過程(定義為發送操作)。下來描述向前傳送郵件,確認郵箱名稱和擴展郵件列表,發送到終端和打開關閉交換。在本節的最後是對中斷,郵件域的說明。本節的例子只是一部分命令和應答的序列,完整的例子見附錄F。
3.1. MAIL
在SMTP發送操作中有三步,操作由MAIL命令開始給出發送者標識。一系列或更多的RCPT命令緊跟其後,給出了接收者信息,然後是DATA命令列出發送的郵件內容,最後郵件內容指示符確認操作。
過程中的第一步是MAIL命令,<reverse-path >;包括源郵箱。
MAIL <SP> FROM:<reverse-path><CRLF>
此命令告訴接收者新的發送操作已經開始,請復位所有狀態表和緩沖區。它給出反向路徑以進行錯誤信息返回。如果請求被接收,接收方返回一個250 OK應答。<reverse-path>;中不止包括了郵箱,它包括了主機和源郵箱的反向路由,其中的第一個主機就是發送此命令的主機。
過程中的第二步是發送RCPT命令。
RCPT <SP> TO:<forward-path> <CRLF>
此命令給出向前路徑標識接收者,如果命令被接收,接收方返回一個
250 OK應答,並存儲向前路徑。如果接收者未知,接收方會返回一個550 Failure應答。此過程可能會重復若干次。
<forward-path>;不僅包括郵件,它是主機和目的郵箱的路由表,在其中的第一個主機就是接收命令的主機。過程中的第三步是發送DATA命令。
DATA <CRLF>
如果命令被接收,接收方返回一個354 Intermediate應答,並認定以下的各行都是信件內容。當信件結尾收到並存儲後,接收者發送一個250 OK應答。因為郵件是在傳送通道上發送,因此必須指明郵件內容結尾,以便應答對話可以重新開始。SMTP通過在最後一行僅發送一個句號來表示郵件內容的結束,在接收方,一個對用戶透明的過程將此符號過濾掉,以不影響正常的數據。
注意:郵件內容包括如下提示:Date,Subject,To,Cc,From。
郵件內容指示符確認郵件操作並告知接收者可以存儲和再發送數據了。如果此命令被接收,接收方返回一個250 OK應答。DATA命令僅在郵件操作未完成或源無效的情況下失敗。
上面所述的過程是一個發送操作。這些命令只能以上面的順序使用。下例表示了在一個發送操作中這些命令的使用。
SMTP過程例子 此例是在Alpha..ARPA主機的Smith發送郵件給Beta..ARPA主機的Jones,Green和Brown的,這里假定主機Alpha與主機Beta直接相連。
S: MAIL FROM:<[email protected]>
R: 250 OK
S: RCPT TO:<[email protected]>
R: 250 OK
S: RCPT TO:<[email protected]>
R: 550 No such user here
S: RCPT TO:<[email protected]>
R: 250 OK
S: DATA
R: 354 Start mail input; end with<CRLF>.<CRLF>
S: Blah blah blah...
S: ...等等
S: <CRLF>.<CRLF>
R: 250 OK
此信被前兩個人接收,而第三個人在此主機上沒有郵箱。
3.2. 轉發
下面是一些<forward-path>;中目的地址不正確的,但接收者知道正確的目的地址的例子。在這些例子中,下列應答之一(251,551)應該允許發送方與獲得正確地址。
251:用戶不在本地;將向前發送到<forward-path>;。
這個應答意味著,接收方SMTP知道用戶的郵箱在另外的主機上,而且意味著將在未來使用正確的轉向路徑。請注意,主機或者用戶,或者它們兩者是不同的。接收方負責傳送消息。
551 :用戶非本地,請嘗試<forward-path>
這個應答意味著接收SMTP知道用戶的郵箱在另外的主機上,並意味著使用了正確的轉發路徑。注意請注意,主機或者用戶,或者它們兩者是不同的。接收方拒絕接收此用戶的信件,發送者必須根據提供的信息重新發送或者向原發送者返回錯誤信息。下例顯示了這些響應的應用。
轉發的例子
S: RCPT TO:<[email protected]>
R: 251 User not local; will forward to<[email protected]>
或者
S: RCPT TO:<[email protected]>
R: 551 User not local; please try<[email protected]>
3.3. 確認和擴展
SMTP提供了另外的確認用戶名和擴展郵件列表的功能。這些功能由VREF和EXPN命令完成,它們都以字元串為參數。對於VREF命令,字元串參數指的是用戶名,對此命令的響應要包括用戶的命名和用戶的郵箱。對於EXPN命令,字元串參數指的是郵件列表,對此命令的響應多於一個,它們要包括所有列表中用戶的命名和他們的郵箱。
「用戶名」是一個多餘的項目,它是故意被加上的。如果主機採用VREF命令和EXPN命令,最後本地郵箱必須提供用戶名使它被主機確認。如果主機選擇由另外的字元串作為用戶名,也是允許的。
在一些主機中,郵箱列表和一個郵箱的代名有一點不清楚,因為一般的數據結構可能包括兩種類型的入口。如果要發出對郵件列表的確認,應該給出確定響應。在接收到這個消息後,主機將把郵件傳送到列表上所有的地址上去,如果沒有接收到確定響應,就會報告錯誤。例如,
"550 That is a mail list,not a user name"。如果請求用於擴展一個用戶名,可能通過返回包括一個名字的列表來形成確定響應,如果沒有接收到確定響應,就會報告錯誤。(例如,"550 That is a user name,not a mailing list")。
在多個響應的情況下(通常是對於EXPN而言的),每個應答指定一個郵箱。在模糊請求的情況下,例如"VRFY Smith",這里兩個Smith的響應必須是"553 User ambiguous"。
確認用戶名的情況如下例所示:例3:
確認用戶名
S: VRFY Smith
R: 250 Fred Smith<[email protected]>
或者
S: VRFY Smith
R: 251 User not local; will forward to<[email protected]>
或者
S: VRFY Jones
R: 550 String does not match anything.
或者
S: VRFY Jones
R: 551 User not local; please try<Jones@USC-ISIQ.,ARPA>
或者
S: VRFY Gourzenkyinplatz
R: 553 User ambiguous.
郵箱列表要求多個響應的情況如下例所示:
S: EXPN Example-People
R: 250-Jon Postel <[email protected]>
R: 250-Fred Fonebone <[email protected]>
R: 250-Sam Q. Smith <SQSmith@USC-ISIQ.,ARPA>
R: 250-Quincy Smith<@USC-ISIF..ARPA:[email protected]>
R: 250-<[email protected]>
R: 250 <[email protected]>
或者
S: EXPN Executive-Washroom-List
R: 550 Access Denied to You.
VERF和EXPN命令的字元串命令參數因為具體實現的不同而不能再加以限制了。在一些系統上,EXPN命令的參數可能是一個包含郵件列表的文件名,但是在Internet上有許多不同的文件結構。
VRFY和EXPN命令在最小實現中並不包括,當它們實現時,它們也不要求被在傳送間實現。
編輯本段3.4. 發送信件和獲得信件
SMTP的主要目的是將郵件發送到用戶的郵箱中。由一些主機提供的類似的功能是把郵件送至用戶的終端(如果用戶正打開終端)。將郵件送到用戶的郵箱中稱為發送信件(mailing);而送至用戶終端則稱之為獲得信件
(sending)。因為在一些主機上,這兩者的實現十分類似,所以它們同時
被放入了SMTP中。然而,獲得信件命令在SMTP的最小實現中是沒有的。用戶應該具有控制向終端上寫信息的能力。大部分主機允許用戶接受或者拒絕類似的信息。
下面三個命令被定義來支持獲得信件。它們被用於郵件命令而不是MAIL
命令,指示接收SMTP這種操作的特殊意義:
SEND <SP> FROM:<reverse-path><CRLF>
SEND命令要求郵件內容直接傳送到用戶終端。如果用戶未打開終端(或
者未接收終端信息),450響應將返回一個RCPT命令。如果信息被成功發送,此操作成功。
SOML <SP> FROM:<reverse-path><CRLF>;
Send或者MaiL命令要求將郵件內容直接發送到用戶的終端上(如果用戶在終端上)。如果用戶不在終端上,郵件內容直接進入郵箱。如果郵件被發送到用戶終端或者用戶信箱,發送操作成功。
SAML <SP> FROM:<reverse-path><CRLF>
Send和MaiL命令要求郵件內容直接發送到用戶終端上(如果用戶在終端上)。不管怎麼樣,信件都會進入信箱。如果信件進入信箱,發送操作成功。
用於MAIL命令的響應和這些命令的響應相同。
編輯本段3.5. 打開和關閉
當打開傳送通道時,要交換一些信息以確定雙方的身份。以下的命令是
用於打開和關閉的:
HELO <SP> <domain> <CRLF>
QUIT <CRLF>
在HELLO命令中,主機自己發送命令,此命令可以被解釋為:「你好,
我是XX」。
打開聯結的例子
R: 220 BBN-UNⅨ..ARPA Simple Mail Transfer ServiceReady
S: HELO USC-ISIF..ARPA
R: 250 BBN-UNⅨ..ARPA
關閉聯結的例子
S: QUIT
R: 221 BBN-UNⅨ..ARPA Service closing transmissionchannel
編輯本段3.6. 轉發
轉發路徑可能是如下格式:"@ONE,@TWO:JOE@THREE",在這里,ONE,TWO
和THREE是主機。這種格式用於強調地址和路徑的區別。郵箱是絕對地址,路徑是關於如何到達的信息。這兩個概念不應該被混淆。
概念上,轉發路徑的元素被移動到回復路徑作為從一個SMTP伺服器到另一個SMTP伺服器的信息。回復路徑是一個反向數據源路徑,例如從當前信息的位置到發起者的位置。當一個SMTP伺服器從轉發路徑中刪除自己的標記並將它插入到回復路徑中時,它必須使用它發送環境能夠理解的名稱來進行,以防它的名稱在不同的環境中被理解為不同的名字。
如果當SMTP接收到信息的轉發路徑的第一個元素不是此SMTP的標記時,此元素不從轉發路徑中刪除,而被用來決定下一個應該發送到的SMTP伺服器。在任何情況下,SMTP都將自己的標記加入反向路徑中。
使用源路徑時,接收SMTP接收轉發的郵件並發送到另一接收SMTP伺服器上。接收伺服器可以接受或拒絕轉發本地用戶的郵件。接收SMTP通過將它自己的標記從轉發路徑移至回復路徑的開始處來改變命令參數。這時,接收SMTP變成了發送SMTP,也就建立了到下一個轉發路徑中SMTP的通道,然後,它向這個SMTP發送郵件。
在回復路徑上的頭一個主機應是發送SMTP命令的主機,在轉發路徑上第一個主機應是接收SMTP命令的主機。
注意:轉發路徑和回復路徑出現在SMTP命令和應答中,但不一定要出現在信
息中。也就是說,沒有必須要這樣的路徑特別這種格式出現在信息頭的"To:","From:"和"CC:"等域中。
如果SMTP伺服器接受了轉發任務,但後來它發現因為轉發路徑不正確或者其它原理無法發送郵件,它必須建立一"undeliverable mail"信號,將此信號送到此信的發主者那裡。
此信號必須是從此主機的SMTP服務上發出的,當然了,此伺服器不應該再報告出錯信息的錯誤。一種阻止這種出錯報告循環的情況是在信號的郵件命令的回復路徑上置空。在傳送此信息時,允許將回復路徑也置為空。一個MAIL命令後的回復路徑為空表現為如下形式:
MAIL FROM:<>
下例中顯示了不可傳送的郵件信息。此信息是對從HOSTW上的JOE發出的郵件經過在HOSTX需要經過HOSTZ到達HOSTY時出錯的回應。我們看到的例子是在HOSTX和HOSTY之間發生的。
不可傳送郵件信息的例子
S: MAIL FROM:<>
R: 250 ok
S: RCPT TO:<@HOSTX..ARPA:[email protected]>
R: 250 ok
S: DATA
R: 354 send the mail data,end with .
S: Date: 23 Oct 81 11:22:33
S: From: [email protected]
S: To: JOE@HOSTW,.ARPA
S: Subject: Mail System Problem
S: Sorry JOE,your message to [email protected] lost.
S: HOSTZ..ARPA said this:
S: "550 No Such User"
S: .
R: 250 ok
編輯本段常見問題
⒈ SMTP是什麼?有什麼作用?答: SMTP是Simple Mail Transfer Protocol的縮寫,即簡單郵件傳輸協議,是一種提供有效可靠傳送電子郵件的協議,用於在兩台郵件伺服器間交換郵件.
⒉ 郵件伺服器間郵件傳輸使用了TCP協議,為何郵件有時還會丟失?
答: 郵件伺服器之間的SMTP協議使用TCP連接,可以保證郵件准確無誤地在郵件伺服器之間傳輸. 但由於郵件伺服器本身的故障,例如郵件空間不足等,會導致郵件無法完成傳輸而導致丟失.
⒊ 發件人用戶代理為何不直接將郵件發送給收件人的用戶代理,而是通過郵件伺服器來傳輸?
答: 因為用戶電腦性能的限制,無法運行收發郵件的程序,並且無法不間斷地運行並連接到互聯網上. 因此只能將信件暫時存放在郵件伺服器中,用戶需要時就可以去下載信件.
6. SMTP的主要功能是什麼
用於傳輸系統之間的郵件信息並提供來信有關的通知。
1、通過SMTP協議所指定的伺服器,就可以把E—mail寄到收信人的伺服器上了,整個過程只需要幾分鍾。SMTP伺服器是遵循SMTP協議的發送郵件伺服器,用來發送或中轉用戶發出的電子郵件。
2、SMTP是一種提供可靠且有效電子郵件傳輸的協議。是建立在FTP文件傳輸服務上的一種郵件服務,主要用於傳輸系統之間的郵件信息並提供來信有關的通知。
3、SMTP重要的特性之一是它能跨越網路傳輸郵件,也即「SMTP郵件中繼」。使用SMTP,可實現相同網路上處理機之間的郵件傳輸,也可以通過中繼器或網關實現某處理機與其它網路之間的郵件傳輸。
具有域名服務系統(DNS)功能的郵件交換伺服器還可以用來識別出傳輸郵件的下一跳IP地址。
工作過程:
1、建立連接:在這一階段,SMTP客戶請求與伺服器的25埠建立一個TCP連接。一旦連接建立,SMTP伺服器和客戶就開始相互通告自己的域名,同時確認對方的域名。
2、郵件傳送:利用命令,SMTP客戶將郵件的源地址、目的地址和郵件的具體內容傳遞給SMTP伺服器,SMTP伺服器進行相應的響應並接收郵件。
3、連接釋放:SMTP客戶發出退出命令,伺服器在處理命令後進行響應,隨後關閉TCP連接。
7. 什麼叫smtp什麼叫pop3謝謝
SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協議,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。SMTP協議屬於TCP/IP協議族,它幫助每台計算機在發送或中轉信件時找到下一個目的地。通過SMTP協議所指定的伺服器,我們就可以把E-mail寄到收信人的伺服器上了,整個過程只要幾分鍾。SMTP伺服器則是遵循SMTP協議的發送郵件伺服器,用來發送或中轉你發出的電子郵件。
POP3 :是Post Office Protocol 3的簡稱,是訪問Internet上電子郵箱的常用方法。 POP3服務允許你設置你的本地瀏覽器的輸入/輸出郵件伺服器名稱,就像使用你的本地電子信箱一樣使用你自己的E-mail軟體來收發郵件。以371.net為例,當你使用nescape、Iemail、outlook express等軟體收信時,必須在這些軟體上設SMTP server和POP3 server的地址。
8. SMTP是如何如何轉發郵件的呢
電子郵件在Internet上發送和接收的原理可以很形象地用我們日常生活中郵寄包裹來形容:當我們要寄一個包裹時,我們首先要找到任何一個有這項業務的郵局,在填寫完收件人姓名、地址等等之後包裹就寄出而到了收件人所在地的郵局,那麼對方取包裹的時候就必須去這個郵局才能取出。同樣的,當我們發送電子郵件時,這封郵件是由郵件發送伺服器(任何一個都可以)發出,並根據收信人的地址判斷對方的郵件接收伺服器而將這封信發送到該伺服器上,收信人要收取郵件也只能訪問這個伺服器才能完成。
1. 電子郵件的發送
SMTP是維護傳輸秩序、規定郵件伺服器之間進行哪些工作的協議,它的目標是可靠、高效地傳送電子郵件。SMTP獨立於傳送子系統,並且能夠接力傳送郵件。
SMTP基於以下的通信模型:根據用戶的郵件請求,發送方SMTP建立與接收方SMTP之間的雙向通道。接收方SMTP可以是最終接收者,也可以是中間傳送者。發送方SMTP產生並發送SMTP命令,接收方SMTP向發送方SMTP返回響應信息。
連接建立後,發送方SMTP發送MAIL命令指明發信人,如果接收方SMTP認可,則返回OK應答。發送方SMTP再發送RCPT命令指明收信人,如果接收方SMTP也認可,則再次返回OK應答;否則將給予拒絕應答(但不中止整個郵件的發送操作)。當有多個收信人時,雙方將如此重復多次。這一過程結束後,發送方SMTP開始發送郵件內容,並以一個特別序列作為終止。如果接收方SMTP成功處理了郵件,則返回OK應答。
對於需要接力轉發的情況,如果一個SMTP伺服器接受了轉發任務,但後來卻發現由於轉發路徑不正確或者其他原因無法發送該郵件,那麼它必須發送一個「郵件無法遞送」的消息給最初發送該信的SMTP伺服器。為防止因該消息可能發送失敗而導致報錯消息在兩台SMTP伺服器之間循環發送的情況,可以將該消息的回退路徑置空。
2. 電子郵件的接收
電子郵件協議第3版本(POP3)
要在網際網路的一個比較小的節點上維護一個消息傳輸系統(MTS,Message Transport System)是不現實的。例如,一台工作站可能沒有足夠的資源允許SMTP伺服器及相關的本地郵件傳送系統駐留且持續運行。同樣的,要求一台個人計算機長時間連接在IP網路上的開銷也是巨大的,有時甚至是做不到的。盡管如此,允許在這樣小的節點上管理郵件常常是很有用的,並且它們通常能夠支持一個可以用來管理郵件的用戶代理。為滿足這一需要,可以讓那些能夠支持MTS的節點為這些小節點提供郵件存儲功能。POP3就是用於提供這樣一種實用的方式來動態訪問存儲在郵件伺服器上的電子郵件的。一般來說,就是指允許用戶主機連接到伺服器上,以取回那些伺服器為它暫存的郵件。POP3不提供對郵件更強大的管理功能,通常在郵件被下載後就被刪除。更多的管理功能則由IMAP4來實現。
郵件伺服器通過偵聽TCP的110埠開始POP3服務。當用戶主機需要使用POP3服務時,就與伺服器主機建立TCP連接。當連接建立後,伺服器發送一個表示已准備好的確認消息,然後雙方交替發送命令和響應,以取得郵件,這一過程一直持續到連接終止。一條POP3指令由一個與大小寫無關的命令和一些參數組成。命令和參數都使用可列印的ASCII字元,中間用空格隔開。命令一般為3~4個字母,而參數卻可以長達40個字元。
網際網路報文訪問協議第4版本(IMAP4)
IMAP4提供了在遠程郵件伺服器上管理郵件的手段,它能為用戶提供有選擇地從郵件伺服器接收郵件、基於伺服器的信息處理和共享信箱等功能。IMAP4使用戶可以在郵件伺服器上建立任意層次結構的保存郵件的文件夾,並且可以靈活地在文件夾之間移動郵件,隨心所欲地組織自己的信箱,而POP3隻能在本地依靠用戶代理的支持來實現這些功能。如果用戶代理支持,那麼IMAP4甚至還可以實現選擇性下載附件的功能,假設一封電子郵件中含有5個附件,用戶可以選擇下載其中的2個,而不是所有。
與POP3類似,IMAP4僅提供面向用戶的郵件收發服務。郵件在網際網路上的收發還是依靠SMTP伺服器來完成。
[電子郵件地址的構成]
電子郵件地址的格式由三部分組成。第一部分「USER」代表用戶信箱的賬號,對於同一個郵件接收伺服器來說,這個賬號必須是唯一的;第二部分「@」是分隔符;第三部分是用戶信箱的郵件接收伺服器域名,用以標志其所在的位置。