RFC821-容易郵件傳輸協(xié)議(SMTP)中文版 - 2
發(fā)表時(shí)間:2023-08-14 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]本文出自: 作者: (2001-11-23 08:08:00) 4.1.2. COMMAND語(yǔ)法格式 命令是由命令碼和其后的參數(shù)域組成的。命令碼是四個(gè)字母組成的,不區(qū)別 大小寫(xiě)。因?yàn)橄旅娴拿畹?..
本文出自: 作者: (2001-11-23 08:08:00)
4.1.2. COMMAND語(yǔ)法格式
命令是由命令碼和其后的參數(shù)域組成的。命令碼是四個(gè)字母組成的,不區(qū)別
大小寫(xiě)。因?yàn)橄旅娴拿畹淖饔檬窍嗤模?
MAIL Mail mail MaIl mAIl
這對(duì)于引導(dǎo)任何參數(shù)值的標(biāo)記也是適用的,如TO和to就是一樣的。命令碼和
參數(shù)由一個(gè)或多個(gè)空格分開(kāi)。然而在回復(fù)路徑和轉(zhuǎn)發(fā)路徑中的參數(shù)是區(qū)別大小寫(xiě)
的。特別是在一些主機(jī)上,"smith"和"Smith"就根本不是一個(gè)用戶。
參數(shù)域由不定長(zhǎng)的字符串組成,它由<CRLF>結(jié)束,接收方在完全接收到此序列前
不會(huì)采取任何行動(dòng)。方括號(hào)代表可選的參數(shù)域。如果不選擇的話,系統(tǒng)選擇默認(rèn)
的設(shè)置。
下面是SMTP命令:
HELO <SP> <domain> <CRLF> MAIL <SP> FROM:<reverse-path> <CRLF>
RCPT <SP> TO:<forward-path> <CRLF>
DATA <CRLF>
RSET <CRLF>
SEND <SP> FROM:<reverse-path> <CRLF>
SOML <SP> FROM:<reverse-path> <CRLF>
SAML <SP> FROM:<reverse-path> <CRLF>
VRFY <SP> <string> <CRLF>
EXPN <SP> <string> <CRLF>
HELP [<SP> <string>] <CRLF>
NOOP <CRLF>
QUIT <CRLF>
TURN <CRLF>
上面參數(shù)域的格式在下面給BNF的格式給出,其中的"..."代表對(duì)于一個(gè)
域的一次或多次的重復(fù)。
<reverse-path> ::= <path>
<forward-path> ::= <path>
<path> ::= "<" [ <a-d-l> ":" ] <mailbox> ">"
<a-d-l> ::= <at-domain> <at-domain> "," <a-d-l>
<at-domain> ::= "@" <domain>
<domain> ::= <element> <element> "." <domain>
<element> ::= <name> "#" <number> "[" <dotnum> "]"
<mailbox> ::= <local-part> "@" <domain>
<local-part> ::= <dot-string> <quoted-string>
<name> ::= <a> <ldh-str> <let-dig>
<ldh-str> ::= <let-dig-hyp> <let-dig-hyp> <ldh-str>
<let-dig> ::= <a> <d>
<let-dig-hyp> ::= <a> <d> "-"
<dot-string> ::= <字符串> <字符串> "." <dot-string>
<字符串> ::= <字符> <字符> <字符串>
<quoted-string> ::= """ <qtext> """
<qtext> ::= "\" <x> "\" <x> <qtext> <q> <q> <qtext>
<字符> ::= <c> "\" <x>
<dotnum> ::= <snum> "." <snum> "." <snum> "." <snum>
<number> ::= <d> <d> <number>
<CRLF> ::= <CR> <LF>
<CR> ::= 回車(chē)符(ASCII碼13) <LF> ::= (ASCII碼10)
<SP> ::= 空格(ASCII碼32) <snum> ::=由一個(gè),兩個(gè)或三個(gè)數(shù)字組成的介
于0-255之間的數(shù)字
<a> ::= 所有A-Z的52個(gè)大小寫(xiě)英文字母
<c> ::= 128個(gè)ASCII字符,但不包括空格和特殊字符
<d> ::= 0-9數(shù)字
<q> ::=不包括<CR>,<LF>,"或\的128個(gè)ASCII字符
<x> ::=所有128個(gè)ASCII字符
<special> ::= "<" ">" "(" ")" "[" "]" "\" "." "," ";" ":" "@" """
或控制字符
注意: "\"是一個(gè)轉(zhuǎn)意字符,它表示在其后的字符代表另外的意義。
例如"Joe\,Smith"用于表示單獨(dú)一個(gè)由逗號(hào)分隔的用戶名。主機(jī)通常由轉(zhuǎn)化為
地址的名稱代表。注意:域的名稱元素是正式的名稱,不能夠使用昵稱或假名。
有時(shí)候名稱的轉(zhuǎn)變機(jī)制可能不知道主機(jī),這就造成了通信的阻塞。為了解決這
個(gè)問(wèn)題,可以采取兩種方法:一種方法是:在"#"后加入一個(gè)十進(jìn)制數(shù)表示主機(jī)地址;
另一種方法是在其后加入32位的IP地址,IP地址的形式是由句號(hào)分隔的四個(gè)介于
0-255之間的十進(jìn)制數(shù)。時(shí)間戳行和返回路徑行的格式通常由下面定義:
<return-path-line> ::= "Return-Path:" <SP><reverse-path><CRLF>
<time-stamp-line> ::= "Received:" <SP> <stamp> <CRLF>
<stamp> ::= <from-domain> <by-domain> <opt-info> ";" <daytime>
<from-domain> ::= "FROM" <SP> <域> <SP>
<by-domain> ::= "BY" <SP> <域> <SP>
<opt-info> ::= [<via>] [<with>] [<id>] [<for>]
<via> ::= "VIA" <SP> <連接> <SP>
<with> ::= "WITH" <SP> <協(xié)議> <SP>
<id> ::= "ID" <SP> <字符串> <SP>
<for> ::= "FOR" <SP> <路徑> <SP>
<連接> ::= 在網(wǎng)絡(luò)信息中心注冊(cè)的連接的標(biāo)準(zhǔn)名稱
<協(xié)議> ::= 在網(wǎng)絡(luò)中心注冊(cè)的協(xié)議的名稱
<daytime> ::= <SP> <日> <SP> <時(shí)間>
<日期> ::= <日> <SP> <月> <SP> <年>
<時(shí)間> ::= <小時(shí)> ":" <分> ":" <秒> <SP> <時(shí)區(qū)>
<dd> ::= 由一個(gè)或兩個(gè)數(shù)字組成的每月1-31日
<月> ::= "JAN" "FEB" "MAR" "APR" "MAY" "JUN" "JUL" "AUG" "SEP" "OCT" "NOV" "DEC"
<年> ::= 由兩位數(shù)字表示本世界的年代00-99
<小時(shí)> ::= 每天的24小時(shí),由0到24
<分> ::= 每小時(shí)的分鐘數(shù)0-59
<秒> ::= 每分鐘的秒數(shù)0-59
<時(shí)區(qū)> ::= 全球標(biāo)準(zhǔn)時(shí)區(qū)
返回路徑例子
Return-Path: <@CHARLIE.ARPA,@BAKER.ARPA:JOE@ABLE.ARPA>
時(shí)間戳行例子
Received: FROM ABC.ARPA BY XYZ.ARPA ; 22 OCT 81 09:23:59 PDT
Received: from ABC.ARPA by XYZ.ARPA via TELENET with X25
id M12345 for Smith@PDQ.ARPA ; 22 OCT 81 09:23:59 PDT
4.2. SMTP響應(yīng)
對(duì)SMTP命令的響應(yīng)是多樣的,它確定了在郵件傳輸過(guò)程中請(qǐng)求和處理的
同步,也保證了發(fā)送SMTP知道接收SMTP的狀態(tài)。每個(gè)命令必須有且只有一個(gè)
響應(yīng)。
SMTP響應(yīng)由三位數(shù)字組成,其后跟一些文本。數(shù)字幫助決定下一個(gè)應(yīng)該
進(jìn)入的狀態(tài),而文本對(duì)人是有意義的。三位的響應(yīng)已經(jīng)包括了足夠的信息,
不用再閱讀文本,文本可以直接拋棄或者傳遞給用戶。特別的是,文本是與
接收和環(huán)境相關(guān)的,所以每次接收到的文本可能不同。在附錄E中可以看到
全部的響應(yīng)碼。正規(guī)的情況下,響應(yīng)由下面序列構(gòu)成:三位的數(shù)字,<SP>,
一行文本和一個(gè)<CRLF>,或者也可以是一個(gè)多行響應(yīng)。只有EXPN和HELP命令
可以導(dǎo)致多行應(yīng)答,然而,對(duì)所有命令,多行響應(yīng)都是允許的。
4.2.1. REPLY CODES BY FUNCTION GROUPS 500 格式錯(cuò)誤,命令不可識(shí)別
(此錯(cuò)誤也包括命令行過(guò)長(zhǎng))
501 參數(shù)格式錯(cuò)誤
502 命令不可實(shí)現(xiàn)
503 錯(cuò)誤的命令序列
504 命令參數(shù)不可實(shí)現(xiàn)
211 系統(tǒng)狀態(tài)或系統(tǒng)幫助響應(yīng)
214 幫助信息
220 <domain> 服務(wù)就緒
221 <domain> 服務(wù)關(guān)閉傳輸信道
421 <domain> 服務(wù)未就緒,關(guān)閉傳輸信道(當(dāng)必須關(guān)閉時(shí),此應(yīng)答可以作
為對(duì)任何命令的響應(yīng))
250 要求的郵件操作完成
251 用戶非本地,將轉(zhuǎn)發(fā)向<forward-path>
450 要求的郵件操作未完成,郵箱不可用(例如,郵箱忙)
550 要求的郵件操作未完成,郵箱不可用(例如,郵箱未找到,或不可訪問(wèn))
451 放棄要求的操作;處理過(guò)程中出錯(cuò)
551 用戶非本地,請(qǐng)嘗試<forward-path>
452 系統(tǒng)存儲(chǔ)不足,要求的操作未執(zhí)行
552 過(guò)量的存儲(chǔ)分配,要求的操作未執(zhí)行
553 郵箱名不可用,要求的操作未執(zhí)行(例如郵箱格式錯(cuò)誤)
354 開(kāi)始郵件輸入,以<CRLF>.<CRLF>結(jié)束
554 操作失敗
4.3. 命令和應(yīng)答序列
發(fā)送者和接收者之間的通信是一問(wèn)一答的交替對(duì)話形式,由發(fā)送者控制。
這樣,發(fā)送發(fā)出一條命令,接收者發(fā)出一個(gè)響應(yīng)。接收者在發(fā)送下一條指令
前必須等應(yīng)答。一個(gè)重要的應(yīng)答是連接應(yīng)答。在連接完成時(shí),接收者通常會(huì)
發(fā)送220"服務(wù)就緒"。發(fā)送者在繼續(xù)發(fā)送指令前會(huì)等待此應(yīng)答。注意:每個(gè)連
接應(yīng)答必須擁有服務(wù)主機(jī)的正式名稱作為第一部分,其后跟響應(yīng)碼。例如:
220 <SP> USC-ISIF.ARPA <SP> Service ready <CRLF>
下面列出了成功和失敗應(yīng)答,這些應(yīng)答必須遵守嚴(yán)格的次序,接收者可以
不理會(huì)應(yīng)答中的文本,但是由數(shù)字指定的意義和操作和命令應(yīng)答序列不能更改。
命令響應(yīng)序列:
每個(gè)命令列出了它可能的應(yīng)答。使用在可能應(yīng)答前的前綴"P"表示預(yù)備的
(未用在SMTP中),"I"表示中間的,"S"表示成功,"F"表示失敗,"E"表示錯(cuò)
誤。如果STMP接收者必須關(guān)閉信道,可以對(duì)任何命令作出421(服務(wù)不可用,
關(guān)閉傳輸信道)響應(yīng)。此表基于下面要講述的狀態(tài)圖:
CONNECTION ESTABLISHMENT(建立連接)
S: 220
F: 421
HELO
S: 250
E: 500, 501, 504, 421
MAIL
S: 250
F: 552, 451, 452
E: 500, 501, 421
RCPT S: 250, 251 F: 550, 551, 552, 553, 450, 451, 452 E: 500, 501, 503, 421
DATA
I: 354 -> data -> S: 250
F: 552, 554, 451, 452
F: 451, 554
E: 500, 501, 503, 421
RSET
S: 250
E: 500, 501, 504, 421
SEND
S: 250
F: 552, 451, 452
E: 500, 501, 502, 421
SOML
S: 250
F: 552, 451, 452
E: 500, 501, 502, 421
SAML
S: 250
F: 552, 451, 452
E: 500, 501, 502, 421
VRFY
S: 250, 251
F: 550, 551, 553
E: 500, 501, 502, 504, 421
EXPN
S: 250
F: 550
E: 500, 501, 502, 504, 421
HELP
S: 211, 214
E: 500, 501, 502, 504, 421
NOOP
S: 250
E: 500, 421
QUIT
S: 221
E: 500
TURN
S: 250
F: 502
E: 500, 503
4.4. 狀態(tài)圖
下面狀態(tài)圖是一個(gè)簡(jiǎn)單的SMTP實(shí)現(xiàn),每一組命令都有一個(gè)狀態(tài)圖。在圖中,
只使用了響應(yīng)碼的第一位數(shù)字作為響應(yīng)的代表。命令組是對(duì)每個(gè)命令建立模式然
后以結(jié)構(gòu)模式將命令集中起來(lái)的。對(duì)于每個(gè)命令有三種可能的應(yīng)答:成功(S),
失。‵)和錯(cuò)誤(E)。在狀態(tài)中,我們使用B代表開(kāi)始,使用W代表等待應(yīng)答。
此狀態(tài)圖使用了如下命令:HELO, MAIL, RCPT, RSET, SEND, SOML,
SAML, VRFY, EXPN, HELP, NOOP, QUIT, TURN.
下面是對(duì)于DATA命令的更復(fù)雜的狀態(tài)圖:
注意:這里的郵件內(nèi)容是多行的,接收者只能收到最后一行時(shí)才發(fā)出應(yīng)答。
4.5. 詳細(xì)內(nèi)容
4.5.1. 最小實(shí)現(xiàn)
為使SMTP能夠工作,對(duì)于接收者來(lái)說(shuō),這是最少應(yīng)該實(shí)現(xiàn)的命令:
COMMANDS - HELO
MAIL
RCPT
DATA
RSET
NOOP
QUIT
4.5.2. 透明性
沒(méi)有對(duì)數(shù)據(jù)透明性的保證,在發(fā)送類似"<CRLF>.<CRLF>"結(jié)束郵件內(nèi)容時(shí)會(huì)
發(fā)生錯(cuò)誤。通常,用戶不關(guān)心這個(gè)"非法"序列。若要所有用戶能夠透明地使用
必須使用以下措施:
1. 在發(fā)送郵件之間,發(fā)送SMTP必須檢查郵件的每一行,如果是一個(gè)句號(hào),就
在行首再加一個(gè)句號(hào)。
2. 當(dāng)郵件被接收時(shí),接收SMTP必須檢查郵件的每一行,如果發(fā)現(xiàn)一行僅有一
個(gè)句號(hào),郵件就此結(jié)束,如果一行中有兩個(gè)句號(hào),那么這一行中就只應(yīng)該有一
個(gè)句號(hào),而將第一個(gè)句號(hào)刪除。
發(fā)送的郵件內(nèi)容可以包括所有128個(gè)ASCII字符。所有字符發(fā)送到收信者的
郵箱,包括格式符號(hào)和其它控制字符。如果傳輸信道提供一個(gè)8位數(shù)據(jù)流,7位
的ASCII碼就可以在其中傳送,而將最高位置為0。一些系統(tǒng)在接收和存儲(chǔ)時(shí)需
要對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換。對(duì)于使用不同于ASCII字符集的主機(jī)或不能以串的形
式而只能以記錄形式存儲(chǔ)的主機(jī)更是如此,如果必須進(jìn)行轉(zhuǎn)換,必須能夠再次
轉(zhuǎn)換回來(lái),對(duì)于用于存儲(chǔ)轉(zhuǎn)發(fā)的主機(jī)更是如此。
4.5.3. 大小
一些對(duì)象需要最大和最小大小。也就是說(shuō),每個(gè)實(shí)現(xiàn)必須能夠接收大于最
小大小的對(duì)象,不能發(fā)送大于最大大小的對(duì)象。對(duì)于可能的最大大小,實(shí)現(xiàn)技
術(shù)上并沒(méi)有限制。
用戶 用戶名的最大長(zhǎng)度是64個(gè)字節(jié)。
域 域的最大長(zhǎng)度是64個(gè)字符
路徑 回復(fù)路徑和轉(zhuǎn)發(fā)路徑的最大長(zhǎng)度是256個(gè)字符
命令行 命令行的最大長(zhǎng)度,包括回車(chē)符為512個(gè)字符
應(yīng)答行 應(yīng)答行的最大長(zhǎng)度,包括回車(chē)符為512個(gè)字符
文本行 文本行的最大長(zhǎng)度,包括回車(chē)符和為透明性增加的字符不得超過(guò)1000
個(gè)字符
接收緩沖區(qū) 接收緩沖區(qū)最多可以容納100個(gè)接收者
如果出錯(cuò),應(yīng)答如下:
500 行過(guò)長(zhǎng)
501 路徑過(guò)多
552 接收者過(guò)多
552 郵件內(nèi)容過(guò)多
附錄 A TCP傳輸服務(wù)
傳輸控制協(xié)議(TCP)在ARPA Internet中使用,并遵守網(wǎng)絡(luò)協(xié)議的US DoD標(biāo)
準(zhǔn)。SMTP傳輸信道連接建立在發(fā)送進(jìn)程的端口U和接收進(jìn)程的端口L上。一個(gè)單一
的全雙工信道用于傳輸。被指定用于此協(xié)議的服務(wù)端口為25,也就是說(shuō)L=25。
TCP連接支持傳輸8位字節(jié),而SMTP只需要傳輸7位;這樣,每個(gè)8位字符的最高
位被置為0。
附錄 B NCP傳輸服務(wù)
ARPANET主機(jī)-主機(jī)協(xié)議(由網(wǎng)絡(luò)控制程序?qū)崿F(xiàn))也可以用于ARPANET。
SMTP傳輸信道連接建立在發(fā)送進(jìn)程的端口U和接收進(jìn)程的端口L上;其后,根據(jù)
初始連接協(xié)議(ICP)建立一對(duì)簡(jiǎn)單連接。這一對(duì)簡(jiǎn)單連接被用作傳輸信道。
此協(xié)議被指定為連接套接字25,也就是說(shuō)L=25。NCP連接支持傳輸8位字節(jié),而
SMTP只需要傳輸7位;這樣,每個(gè)8位字符的最高位被置為0。
附錄 C NITS
也可以使用網(wǎng)絡(luò)獨(dú)立轉(zhuǎn)輸服務(wù)。通過(guò)在NITS在發(fā)送進(jìn)程和接收進(jìn)程之間建
立傳輸信道。發(fā)送進(jìn)程執(zhí)行CONNECT原語(yǔ),然后等待接收ACCEPT原語(yǔ)。NITS連接
支持傳輸8位字節(jié),而SMTP只需要傳輸7位;這樣,每個(gè)8位字符的最高位被置
為0。
附錄 D X.25傳輸服務(wù)
可以直接使用公共數(shù)據(jù)網(wǎng)絡(luò)接收的X.25服務(wù),然而,推薦在其上使用可靠
的端到端的協(xié)議如TCP。
附錄 E 應(yīng)答碼構(gòu)成方法
三位的應(yīng)答碼每一位都有特定的意義。每一位應(yīng)答表示是否是成功的,失敗
的或未完成的。通過(guò)這一位,不復(fù)雜的SMTP發(fā)送就可以決定下一步的操作,如果
發(fā)送方希望大概了解究竟出了什么問(wèn)題,它可以檢測(cè)第二位,而第三位則保存了
最后更完整的信息。也就是說(shuō),從第一位到第三位,接收方可以一步比一步精
確地確定接收方的狀態(tài)。對(duì)于第一位有五種可能的表示代表不同的意義:
1yz 部分完成應(yīng)答
命令被接受,但是要求的操作被中止,原因在應(yīng)答碼中。發(fā)送方應(yīng)該再次
發(fā)送另一命令指明是否繼續(xù)操作,或者放棄操作。
2yz 全部完成應(yīng)答
要求的操作已經(jīng)完成,可以開(kāi)始另一個(gè)新的請(qǐng)求。
3yz 需要近一步信息的部分完成應(yīng)答
命令被接受,但是要求的操作被中止,需要接收進(jìn)一步的信息。發(fā)送方應(yīng)
該發(fā)送另一條命令指明進(jìn)一步的信息。
4yz 暫時(shí)未完成應(yīng)答
命令未被接受,要求的操作也未執(zhí)行,但是發(fā)生錯(cuò)誤的狀態(tài)是暫時(shí)的,可
以再一次請(qǐng)求操作。發(fā)送者應(yīng)該返回命令序列的開(kāi)始命令(如果有的話)。很
難解釋這個(gè)暫時(shí)的意義,特別對(duì)于兩個(gè)不同的站點(diǎn)來(lái)說(shuō)。區(qū)別應(yīng)答是屬于些類
還是下一類的方法是:如果能夠不加任何改變地重復(fù)的再一次發(fā)送命令,就是
本類的,如果不是,就是下一類(5yz)的。
5yz 永久未完成應(yīng)答
命令未被接受,要求的操作未完成。發(fā)送對(duì)命令的重復(fù)不起作用。即使一
些出錯(cuò)條件已經(jīng)改變,但是用戶已經(jīng)不希望重試,而希望在未來(lái)的某個(gè)時(shí)間再
進(jìn)行操作。
應(yīng)答的第二位的意義有以下幾類:
x0z 語(yǔ)法:此類型的應(yīng)答是針對(duì)以下情況的:語(yǔ)法錯(cuò)誤;符合語(yǔ)法但命令不存
在功能;未完成或冗余的命令。
x1z 信息:此類型的應(yīng)答是用于請(qǐng)求信息的,如狀態(tài)或幫助信息。
x2z 連接:此類型的應(yīng)答是關(guān)于傳輸信道的。
x3z 未使用。
x4z 未使用。
x5z 郵件系統(tǒng):此類型的應(yīng)答指明接收方郵件系統(tǒng)關(guān)于請(qǐng)求傳送或其它操作
的狀態(tài)的。
第三位給出了更詳細(xì)的說(shuō)明。列出的應(yīng)答表說(shuō)明了這一點(diǎn)。文本應(yīng)答是
推薦使用的,而不是必須使用的,它的內(nèi)容是可以根據(jù)不同情況而變化的。
另一方面,應(yīng)答碼必須嚴(yán)格遵守本節(jié)的說(shuō)明。接收方不應(yīng)該因?yàn)樯陨缘牟煌?
情況而自己創(chuàng)建新的代碼而不使用已經(jīng)定義的代碼。例如,如NOOP命令的情
況,如果成功執(zhí)行它后,不用返回任何新的信息,只用返回250應(yīng)答。當(dāng)發(fā)送
的命令要求一個(gè)未實(shí)現(xiàn)的站點(diǎn)指定操作時(shí),應(yīng)答應(yīng)該是502。 應(yīng)答文本可能
多于一行;在此情況下,文本必須被標(biāo)記,接收文本的一方才不致于少讀入
一行數(shù)據(jù)。這要求特定的格式說(shuō)明多行應(yīng)答。此格式是:每一行,除了最后
一行外,都以應(yīng)答碼加一個(gè)"-"開(kāi)始。而最后一行以應(yīng)答碼加空格<SP>開(kāi)始。
如下例:
123-First line
123-Second line
123-234 text beginning with numbers
123 The last line
通常情況下,接收的一方只用尋找應(yīng)答碼加空格的那一行就可以,而忽
略前面行的內(nèi)容。在特殊的情況下,發(fā)送方必須知道響應(yīng)文本的內(nèi)容,這時(shí)
接收應(yīng)答的一方可以通過(guò)當(dāng)時(shí)的情況正確地決定是否需要知道文本的內(nèi)容。
附錄 F 一些例子
本節(jié)提供了一些SMTP會(huì)話的完整例子。
典型的SMTP操作
此類顯示郵件如何由在USC-ISIF和機(jī)上的Smith發(fā)送到BBN-UNIX主機(jī)上
Jones,Green和Brown的。這里,我們假設(shè)USC-ISIF主機(jī)直接和BBN-UNIX主機(jī)聯(lián)系。
Jones和Brown接收郵件,而Green在BBN-UNIX上沒(méi)有郵箱。
R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready
S: HELO USC-ISIF.ARPA
R: 250 BBN-UNIX.ARPA
S: MAIL FROM:<Smith@USC-ISIF.ARPA>
R: 250 OK
S: RCPT TO:<Jones@BBN-UNIX.ARPA>
R: 250 OK
S: RCPT TO:<Green@BBN-UNIX.ARPA>
R: 550 No such user here
S: RCPT TO:<Brown@BBN-UNIX.ARPA>
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK
S: QUIT
R: 221 BBN-UNIX.ARPA Service closing transmission channel
放棄SMTP操作
R: 220 MIT-Multics.ARPA Simple Mail Transfer Service Ready
S: HELO ISI-VAXA.ARPA R: 250 MIT-Multics.ARPA
S: MAIL FROM:<Smith@ISI-VAXA.ARPA>
R: 250 OK
S: RCPT TO:<Jones@MIT-Multics.ARPA>
R: 250 OK
S: RCPT TO:<Green@MIT-Multics.ARPA>
R: 550 No such user here
S: RSET
R: 250 OK
S: QUIT
R: 221 MIT-Multics.ARPA Service closing transmission channel
轉(zhuǎn)發(fā)郵件
第一步:源主機(jī)到轉(zhuǎn)發(fā)主機(jī)
R: 220 USC-ISIE.ARPA Simple Mail Transfer Service Ready
S: HELO MIT-AI.ARPA
R: 250 USC-ISIE.ARPA
S: MAIL FROM:<JQP@MIT-AI.ARPA>
R: 250 OK
S: RCPT TO:<@USC-ISIE.ARPA:Jones@BBN-VAX.ARPA>
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Date: 2 Nov 81 22:33:44
S: From: John Q. Public <JQP@MIT-AI.ARPA>
S: Subject: The Next Meeting of the Board
S: To: Jones@BBN-Vax.ARPA
S:
S: Bill:
S: The next meeting of the board of directors will be
S: on Tuesday.
S: John.
S: .
R: 250 OK
S: QUIT
R: 221 USC-ISIE.ARPA Service closing transmission channel