[1]internet地址
(1)標準的internet地址
所有Internet的地址通用形式為:
userid(用戶標識)@domain(域名)
例:qinghua0000@sohu.com
harley@fuzzball.ucsb.edu
(2)域名與子域
用戶標識不是唯一的,唯一所具備的條件呢就是用戶標識與域名的結合必須是唯一的,在同一個域中的用戶標識不能相同。其中的域名包含若干子域。值得注意的是,一種具有兩個子域的地址,通常要么這個機構很小,要么很大(像sohu.com)。sohu是擁有多臺計算機的大機構;在這樣的機構中,有一臺計算機專用作與外部世界之間電子郵件的收發。該機構的系統管理員為每個人都安排有簡單化的郵件地址。以便能夠在sohu.com地址上收發郵件。
一般,術語“gateway”(網關)涉及的是兩個不同系統之間的連接,假如我們有一個網關(gateway),網關起著內部網絡與外部世界之間的連接作用。因網關有用戶標識和本地地址表;當一個郵件到達時,網關就可以校查該表,并把該郵件發送給相應的本地計算機。
(3)最高級域
一般有兩種形式的最高級域:一般稱之為機構域,還有一種稱之為地區域。
域 類型
com 商業機構 (全稱:commercialorganization)
edu 教育機構 (全稱:educationalinstitution)
gov 政府部門 (全稱:government)
int 國際性機構 (全稱:internationalorganization)
mil 軍隊 (全稱:military)
net 網絡機構 (全稱:networhimgorganization)
org 非盈利機構 (全稱:non-profitorganization)
表一、最高級域機構名屬性對照表
域 國家
at 奧地利 (全稱:Austria)
au 澳大利亞 (全稱:Australia)
ca 加拿大 (全稱:Canada)
ch 瑞士 (全稱:Switzerland"ConfoederationHlvetia")
cn 中國 (全稱:China)
de 德國 (全稱:Genmark"Deutschland")
dk 丹麥 (全稱:Denmark)
es 西班牙 (全稱:Spain"Espana")
fr 法國 (全稱:Fance)
gr 希臘 (全稱:Greece)
ie 愛爾蘭共和國 (全稱:Republic of Zreland)
jp 日本 (全稱:Japan)
nz 新西蘭 (全稱:New zealand)
uk 英國 (全稱:United Kingdow)
us 美國 (全稱:United States)
(4)偽Internet地址
有許多機構希望與Internet相連接,但是沒有時間或經費與Internet保持長期的連接。作為一個替代的方法,它們與附近的Internet點商定,讓其作為它們的郵件代理。僅從這個地址,常常無法斷定計算機是否真正與Internet相連接。如果要確切知道一臺計算機是否與Internet連接,可使用host命令。
(5)IP地址與 host命令
可以在使用正規地址的任何地方使用IP地址。Internet的地址記錄系統叫做域名系統或DNS。DNS是將域名地址與IP數字地址這兩個版本來回轉換的一種TCP/IP服務。
如果要測試 DNS,可以使用host命令。有以下兩種格式:
host standard-address
host IP-address
如果你從一個標準地址入手:
host ucsd.edu
DNS將顯示IP地址:
host 128.54.16.1
反之如果你從一個IP地址入手,DNS將顯示標準地址。
只有Internet主機才有IP地址(仿真終端是沒有的)。因此,可以使用host命令檢查計算機是否與Internet直接連接。如使用host能測試出IP地址,說明該計算機是與Internet連接的。
如果指定的地址是未與Internet直接連接的計算機的。將看到:
host not found
host 命令并不適用于所有的計算機。如果你的系統沒有host,請試一下nslookup或nstest。
(6)UUCP
所有Unix系統都有一個叫做UUCP的內置聯網系統。UUCP是一組程序。名字UUXP來自這些程序中的一個程序,該UUCP程序將文件在Unix系統之間相互拷貝,因此這個名字的意思是“Unix到Unix拷貝”。
UUCP的功能不及TCP/IP強。例如,UUCP不能提供遠程登錄UUCP郵件程序比Internet慢,并更難用。但是UUCP有一個重要的優點,它是一個標準的Unix部分(適合于絕大多數系統),它通過撥號或電纜直接連接運行,既便宜又可靠。UUCP的作用是使Unix系統連接到一起,形成一個鏈。例如,假定你正在使用一臺名為alpha的計算機,你的計算機就與另一臺名為beta的計算機連接起來了,beta計算機與gamma計算機連接,gamma計算機再與delta計算機連接。
它提供了一種經濟的方式在計算機之間遠距離傳送郵件。但是,有一個重要的缺點:由于許多UUCP連接是通過電話線,而且在某些預定的時間內實現的郵件投送可能需數小時,甚至好幾天。將還種方式與Internet比較,在Internet中,連接是永久的,信息件遞很迅速,常常在幾秒鐘內,一般在幾分鐘內就可以完成。
(7)UUCP地址和Bang路徑
建立一個由名字依次排列組成的地址,名字之間用!符號分開。例如,下面是一個將上面提到的用戶標識發送信息的郵件命令。
mailbeta!gamma!delta!murray
在Unix術語中,!符號的專門術語名字之一是bang。因此,一個指定多重名字的UUCP地址有時叫做bang路徑(bangpath)。
(8)簡化的UUCP地址
為了使得UUCP獲取地址方便,采取了一個叫做UUCPmappingproject(UUCP圖示方案)的措施。該方案定期出版數據“地圖”,發送到許多關鍵UUCP計算機,當UUCP郵件到達這些計算機時,計算機可以查看這個圖,確定使用的最佳路徑。實質上這樣可使你使用的UUCP地址與Internet地址相同,讓該系統做這項工作。
因此,有時可能看見一種使用UUCP的最高級域的地址。例如,你可以用以下地址發送郵件:
albert@gendeau.uucp
當使用這樣一個地址時,就等于向郵件路由軟件發出了一個信號,讓它找出UUCP圖示數據中的名字和指出最佳使用路徑。
[2]INTERNET郵件系統
(1)intrenet電子郵件系統基礎
<1> 傳送受理程序
郵件系統是可輸送各類信息的綜合服務系統:像文獻、印刷品、計算機程序等。而唯一所需的是用ASCII字碼(即可用鍵盤錄入的數據)存貯數據。 在有些情況下,也可傳送非文本資料,如圖像或錄音。
SMTP,表示簡易郵件傳送協議(SimpleMailTransferProtocol),它是TCP/IP系列協議的一部分。它解釋郵件的格式和說明怎樣處理投遞的郵件。每一臺Internet計算機在運行郵件程序時,可自動地確保郵件以標準格式選址和傳送。這個程序稱為傳送受理程序(transport agent),它按照SMTP協議工作并將你的郵件聯系向外界發送。
在大多數系統中,傳送受理程序在“后臺”中運行,隨時對可能收到的任何要求作出反應。在Unix系統術語中,這個程序稱之為“守護神”,即智能程序(daemon)(是的,完全可以這樣稱呼)。
每一個Unix系統都有各種隱放在“后臺”的智能程序無聲地為你服務。從理論上講,不論你的系統使用的是什么傳送受理程序,只要它能用SMTP收發郵件文件就行。大多數Unix系統使用一種叫“傳送郵件(sendmail)”的智能程序。
<2>電子郵件系統接口(Interface)
a. 用戶郵件程序: 做為一個用戶,你不會直接與你系統中的傳送受理程序發生聯系;只是在機器內部通過SMTP運行收發郵件,你使用的這種郵件程序叫作用戶郵件程序. 最廣泛使用的用戶郵件程序是Unix郵件程序。BSD用戶郵件程序稱為mailx,SystemV用戶郵件程序稱為Mail。
b.Unix基礎郵件程序
通用的有ELM(全屏) 、PINE(菜單驅動)、MH(文件操作者)、MUSH (Zmail)、RMAIL(Emacs是一個建立在功能強大的文本編輯程序上的完整工作環境。在Emacs環境中,你不僅能編輯文本,還能編制擴展程序,閱讀Usenet(用戶網)文章,操作Rmail收發郵件)
C.郵件信頭編寫
標準格式的郵件是由兩部分組成:“信頭”和“主體”。信頭包括在文件開始處的信息行。主體實際上是你所表達的信件內容。
下面是一個樣本文件。信頭格式在操作系統中也許有變動,但主要內容不變。
Fromrick@tsi.com WedMar3114:47:021993(From+地址+時間)
Received:fromhub.ucsb.edu by engineering.ucsb.edu
id AA15594toharley: Wed, 31Mar9313:19: 25PST
Received:from fuzzball(fuzzball.ucsb.edu)byhub.ucsb.edu;
id AA11868
Sendmail4.1/UCSB2.0sun
Wed.3lNar9313:23:58SPST for harley@cs.ucsb.edu
Received:by FUZZBALL(5.57/UCSB-V2)
id AA07200:Wed,31Mar9313:17:40PST
Received:fromtsi.combyucsd.edu;id AA03169
Send mail 5.67/UCSD-2.2 sunvia SMTP
Wed.31 Mar 9313:23:520800 for harley@fuzzball.ucsb.edu
Received:bysdcc12.UCSD.EDU(4.l/UCSDGENERIC.3)
id AA25582 to harley@fuzzball.ucsb.edu;
Wed.31 Mar 9313:23:51PST
Date:Wed.31 Mar 9313:23:51PST
From:rick@tsi.com(RickStout)
MessageId:9303311840.AA067ll@tsi
X.Mailer:MailUser@#s Shell(7.1.27/11/90)
To:harley@fuzball.ucsb.edu
Subject:this is the subject
Cc:ad die@nipper.com kim@nipper.com
Status:Ro
Harley:I have setup an appoint ment for next Thursday afternoon.
PIease let me know if you can attend.
...Rick
來源: rick@tsi.com1993年3月31日星期三14點47分2秒
接收: from hub.ucsb.edu by engineering.ucsb.edu
id AA15594 to harley:93年3月31日星期三13:19:25PST
接收: from fuzzball(fuzzball.ucsb.edu)by hub.ucsb.edu
id AA11868
傳送郵件4.1/UCSB-2.Osun
93年3月31日早期三13:23:58PST到harley@cs.ucsb.edu
接收: 由fuzzball(5.57/UCSB-v2)
id AA07200; 93年3月31日星期三,時間13:17:40PST
接收:來自tsi.com by ucsd.edu;idAA03169
傳送郵件通過SMTP5.67/UCSD-2.2sun
93年3月31日星期三時間13:25:520800到harley@fuzzball.ucsb.edu
接收:由sdcc12.UCSD.EDU(4.1/UCSDGENERIC.3)
發送id AA25582至harley@fuzzball.ucsb.edu;
93年3月31日星期三;13:23:51PST
日期:93年3月31日星湖三13:23:51PST
來源: rick@tsi.com(Rick Stout)
文件標識符:93O3311840.AA06711@tsi
X-郵件者: Mail User@#s Shell(7.1.27/11/90)
至: harley@fuzzball.ucsb.edu
標題:具體題目
副本(Cc): addie@nipper.com kim@nipper.com
狀態:RO
Harley:在下星期四下午,我安排了一次會見,請告知我你是否參加。
Rick
以上例子說明,在信頭中的第一行總是單詞“ From”,該行表明發信人的地址。在我們這個例子中,文件是從rick@tsi.com發來的。其它行即不必以同樣的順序顯示。這取決于收發郵件系統是怎樣構成的,也取決于在你特別的郵件程序設置的是什么選擇。在最初的“From”行后有十四行包括五條Received說明的技術信息。這些字行表明該文件所取的路徑、時間、日期和操作過程中每一步應使用什么程序。郵件程序常顯示一個“狀態”行?墒,幾乎沒有人知道不同的設計表示什么,這一般查不到。
d.用MIME傳送二進制數據(多功能Internet郵件擴展程序)
為了收發二進制數據,你必須具有用來支持MIME的一個用戶郵件程序(郵件程序);MIME標準現已成為Internet電子郵件的主流,我們現在最常使用的電子郵件軟件Eudora、Netscap e Mail、Internet Mail就是采用MIME方式。MIME定義兩種編碼萬式:Base64與QP(Quote-Printable)。QP的規則是對于資料中的7位無須重復編碼,僅將8位的數據轉成7位。QP編碼適用于ASCII碼的及字內容,例如我們的中文文件。而Base64 的編碼規則是將整個文件重新編碼成7位,通常用于傳送二進制文件。編碼的方式不同會影響編碼之后的文件大小。而具有MIME功能的E-mail軟件大都能自動判別你的郵件是采用何種編碼,然后自動選擇用QP或Base64來解碼。
[3]基本的網絡協議
(1)SMTP
下圖顯示了SMTP的基本模型。發送方建立起與接收方SMTP的通信。在傳輸郵件之前,兩個SMTP實體可以交換口令或其他鑒別信號,然后發送方發出一個特殊命令,稱為MAIL,該命令給出了發送方的標識及一些有關郵件交換的其他信息。接收方必須返回一個對MAIL命令的確認。在SMTP中,該確認可寫為250,在另一些文檔中,該確認為250 OK。不管是哪一種格式,確認表示所要求的郵件操作完成了。
圖一、 SMTP模型
郵件傳輸過程的下一步是傳輸RCPT命令以標識報文的目的端,接收方仍必須給出對該命令的一個確認。
第三步是發送DATA命令。發送方SMTP發出該命令提醒接收方一個報文就要到達了。在發送了該命分之后,發送方SMTP便一行接一行地發送數據,直到發送方發出了一個特殊的控制字符序列,表示報文結束了。這時,服務器使用QUIT命令終止該過程。
(1.1)地址段格式
發送方SMTP使用了一個標準的送地址和接收地址格式,它們的形式如下:
local-part@domain-name
因此SMTP名字遵從了域名系統(DNS)的概念,一些系統使用一個服務器,將該名字映射成IP地址。實際應用中,這種格式可能出現為:
Jones@beta.aus.edu
其中本地用戶名為Jones,beta.aus.edu是Jones的域標識符。Iocal-part@domain-name還可能采取其他形式以表示如下含義:
² 一個直接的連接(use@host)
² 郵件接收方位于一臺非SMTP主機,通過一個郵件網關接收郵件(user%remote-host@gateway-host)
² 多臺主機間的應答(@host-b@host-c@hostd)
(2)POP3
首先,P O P 3服務器啟動P O P 3服務,并監聽110端口。當客戶機要僅用P O P 3服務時,它先與 POP3服務器建立一條TCP連接。若連接成功建立,POP3服務器向客戶端發送一條歡迎消息,然后客戶機與POP3服務器之間就可以進入命令交互和響應狀態,直到連接關閉或異常中斷。
每個POP3會話總是處于一系列的狀態變化中。一旦客戶機與POP3服務器之間的TCP連接建立起來并且POP3服務器的歡迎言息傳到客戶端。POP3會話過程就進入認證狀態。在該狀態下,客戶機必須進行身份驗證。一旦驗證通過,并且POP3服務器獲得足夠的資源打開用戶的郵箱。這時POP3會話過程進入“命令交互狀態”。在“命令交互狀態”下,客戶端可以向POP3服務器提出各科服務請求,由POP3服務器完成該服務并返回成功或失敗的響應信息。當客戶端發出“QUIT’命令后,POP3會話過程進入“更新狀態”。在“更新狀態”下,POP3服務器釋放在“命令交互狀態”下獲得的資源,更新用戶郵箱,然后關閉TCP連接。
(2.1)POP3的基本命令
² USER
這個命令以用戶的帳號名稱作為參數。
² PASS
這個命令以用戶的口令作為參數,缺省情況下用戶的口令將以明文在網絡上傳輸。
² STAT
該命令無參數,僅用于“命令交互狀態”。
獲取當前用戶郵件總數和郵件總大小。POP3服務器返回一個成功的響應,以“+OK”開頭,后跟一個空格字符,然后是當前用戶郵箱內郵件的總數,之后又是一個空格字符,最后是用戶郵件的總大小(BYTES)。
C: STAT
S: +OK 2320
² LIST
該命令可以沒有參數也可以有一個參數,該參數代表郵件的序
號,但該序號不能是已刪除郵件。
該命令僅用于“命令交互狀態”。
C: LIST
S: +OK 2 messages( 320 octets)
S: 1 120
S: 2 200
S: .
......
C: LIST 2
S: +OK 2 200
......
C: LIST 3
S: -ERR no such mesage, only 2 message in maildrop.
² RETR
該命令必須帶有一個郵件序號,該郵件序號不能是已刪除郵件。
該命令僅用于“命令交互狀態”。
若POP3服務器返回一個成功響應,則隨后的響應屬于多行響應。在首行“+OK”響應之后,POP3服務器把對應于該郵件序號的郵件發送到客戶端。
C: RETR 1
S: +OK 120 octets
S: < The PoP3 server sends the entire message here>
C: RETR 5
S: -ERR no such message.
² DELE
該命令必須帶一個郵件序號參數。僅用于“命令交互狀態”
POP3服務器把該郵件標志為“已刪除”,之后,任何對該郵件的操作都將返回錯誤。POP3服務器并不實際刪除該郵件,除非POP3會話進“更新狀態”。
C: DELE 1
S: +OK message 1 deleted
......
C: DELE 1
S: -ERR message 2 already deleted
² NOOP
該命令不待參數,實際上也不做任何事情。僅用于“命令交互狀態”。
C: NOOP
S: +OK
² RSET
該命今不帶參數。僅用于“命令交互狀態”。
POP3服務器將所有已被標志為刪除的郵件的刪除標志取消,并返回成功響應。
C: RSET
S: +OK maildrop has 2 messages ( 320 octets)
² QUIT
該命令無參數,僅用于“命令交互狀態”。
POP3服務器把所有已標志為刪除的郵件刪除,并釋放在“命令交互狀態”中獲得的資源,然后關閉TCP連接,POP3會話結束。
2.SMTP
1、概述
SMTP被用來在因特網上傳遞電子郵件。文件RFC821規定了該協議的所有細節。
協議的原理很簡單。無非是一個客戶端計算機向服務器發送命令,然后服務器向客戶端計算機返回一些信息?蛻舳税l送的命令以及服務器的回應都是字符串。
首先要與郵件服務器連接,服務器將返回文本。該文本包含一個三位數的代碼及描述,例如:
220-ns.cinfo.ru Sendmail 8.6.12/8.6.9 ready at Wed, 22 Apr 1998 22:54:41 +0300
220 ESMTP spoken here
這些描述可能會因服務器而異。只須要知道代碼所代表的意思就行了。代碼220表示成功建立連接,服務器等待你的第一個命令。
向服務器傳遞的第一個命令是HELO. 該命令包含一個參數,即你的郵箱名。
HELO oleg
注意: 在RFC821中,HELO是一個可選擇性命令,如果服務器不要求該命令的話,你可以把它忽略掉。
如果命令成功,服務器會返回一個代碼為250的回應。
下一步用MAIL FROM命令告訴服務器你想發一封郵件。該命令以發信人的郵件地址為參數。
MAIL FROM: oleg@vbip.com
發完命令后,如果服務器返回一個代碼為250回應,你就可以向服務器發送RCPT TO命令了。
RCPT TO命令以收信人地址為參數,是告訴服務器你想將郵件發到收信人地址處。
RCPT TO: somebody@domain.com
如果你想將郵件發給多個收件人的話。你需要多次使用RCPT TO命令,對每個命令,服務器都會返回代碼為250的回應。
現在可以向服務器發送郵件正文了。
用DATA命令告訴服務器以下的內容為郵件正文。在你從服務器收到代碼為354的回應后,你就可以發送郵件正文了。郵件按行發送,每行郵件以一個無回車的換行符結束,只須按回車鍵就行了。下面是一個例子:
Subject: My first e-mail message.
First line of a message.
Second line.
注意上面最后一行的最后一個字符是一個小數點。這是正文結束的標志。 服務器收到這個標志后,就會立即返回一個代碼為250的回應以及該郵件的唯一ID號。
250 WAA10568 Message accepted for delivery
任務完成了,可以繼續發送下封郵件,也可以斷開同服務器的連接。如果要斷開同服務器的連接就用QUIT命令。在這種情況下,服務器會返回一個代碼為221的回應并斷開連接。
QUIT
221 ns.cinfo.ru closing connection
2、工作機制
SMTP設計基于以下通信模型:針對用戶的郵件請求,發送SMTP建立與接收SMTP之間建立一個雙向傳送通道。接收SMTP可以是最終接收者也可以是中間傳送者。SMTP命令由發送SMTP發出,由接收SMTP接收,而應答則反方面傳送。
一旦傳送通道建立,SMTP發送者發送MAIL命令指明郵件發送者。如果SMTP接收者可以接收郵件則返回OK應答。SMTP發送者再發出RCPT命令確認郵件是否能接收到。如果SMTP接收者接收,則返回OK應答;如果不能接收到,則發出拒絕接收應答(但不中止整個郵件操作),雙方將如此重復多次。當接收者收到全部郵件后會接收到特別的序列,如果接收者成功處理了郵件,則返回OK應答
SMTP提供傳送郵件的機制,如果接收方與發送方連接在同一個傳送服務下時,郵件可以直接由發送方主機傳送到接收方主機;或者,當兩者不在同一個傳送服務下時,通過中繼SMTP服務器傳送。為了能夠對SMTP服務器提供中繼能力,它必須擁有最終目的主機地址和郵箱名稱。
MAIL命令參數是回復路徑,它指定郵件從何處來;而RCPT命令的參數是轉發路徑的,它指定郵件向何處去。向前路徑是源路徑,而回復路徑是返回路徑(它用于發生錯誤時返回郵件)。
3、基本命令(所有的命令都是四個字母組成)
發送郵件操作涉及到不同的數據對象,它們由不同的參數相互連接;貜吐窂骄褪荕AIL命令的參數,而轉發路徑則是RCPT命令的參數,郵件日期是DATA命令的參數。這些參數或者數據對象必須跟在命令后。這種模式也就要求有不同的緩沖區來存儲這些對象,也就是說,有一個回復路徑緩沖區,一個轉發路徑緩沖區,一個郵件內容緩沖區。特定的命令產生自己的緩沖區,或使一個或多個緩沖的內容被清除
(0)HELO(HELLO)
HELO〈SP〉〈domain〉〈CRLF>
通知服務器客戶的身份!
此命令用于向接收SMTP確認發送SMTP。參數域包括發送SMTP的主機名。接收SMTP通過連接確認命令來向發送SMTP確認接收SMTP。引命令和OK響應確認發送和接收SMTP進入了初始狀態,也就是說,沒有操作正在執行,所有狀態表和緩沖區已經被子清除。
(1)MAIL
MAIL FROM:
此命令用于開始將郵件發送到一個多個郵箱中。參數域包括回復路徑。返回路徑中包括了可選的主機和發送者郵箱列表。當有主機列表時,它是一個回復路徑源,它說明此郵箱是由在表中的主機一一傳遞發送(第一個主機是最后一個接收到此郵件的主機)過來的。此表也有作向發送者返回非傳遞信號的源路徑。因為每個傳遞主機地址都被加在此表起始處,它就必須使用發送IPCE而不是接收IPCE(如果它們不是一個IPCE的話)清楚的名稱。一些出錯信息的回復路徑可能就是空的。
此命令清除回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區,并且將此命令的回復路徑信息插入到回復路徑緩沖區中。
(2)RCPT(recipient)
RCPT TO:
此命令用于確定郵件內容的唯一接收者;多個接收者將由多個此命令指定。轉發路徑中包括一個可選的主機和一個必須的目的郵箱。
此命令給出向前路徑標識接收者,如果命令被接收,接收方返回一個250 OK應答,并存儲向前路徑。如果接收者未知,接收方會返回一個550 Failure應答。此過程可能會重復若干次。
不僅包括郵件,它是主機和目的郵箱的路由表,在其中的第一個主機就是接收命令的主機。
(3)DATA
DATA
如果命令被接收,接收方返回一個354 Intermediate應答,并認定以下的各行都是信件內容。當信件結尾收到并存儲后,接收者發送一個250 OK應答。因為郵件是在傳送通道上發送,因此必須指明郵件內容結尾,以便應答對話可以重新開始。SMTP通過在最后一行僅發送一個句號來表示郵件內容的結束,在接收方,一個對用戶透明的過程將此符號過濾掉,以不影響正常的數據。
注意:郵件內容包括如下提示:Date, Subject, To, Cc, From。
郵件內容指示符確認郵件操作并告知接收者可以存儲和再發送數據了。如果此命令被接收,接收方返回一個250 OK應答。DATA命令僅在郵件操作未完成或源無效的情況下失敗。
(4)RSET
RSET
此命令指示當送郵件操作將被放棄。任何保存的發送者,接收者和郵件內容應該被拋棄,所有緩沖區和狀態表應該被清除,接收方必須返回OK應答。
(5)SEND
SENDFROM:〈reverse-path>
此命令用于開始一個發送命令,將郵件發送到一個或多個終端上。參數域包括了一個回復路徑,此命令如果成功就將郵件發送到終端上了。
回復路徑包括一個可選的主機列表和發送者郵箱。當出現主機列表時,表示這是一個傳送路徑,郵件就是經過這個路徑上的每個主機發送到這里的(列表上第一個主機是最后經手的主機)。此表用于返回非傳遞信號到發送者。因為每個傳遞主機地址都被加在此表起始處,它就必須使用發送IPCE而不是接收IPCE(如果它們不是一個IPCE的話)清楚的名稱。一些出錯信息的回復路徑可能就是空的。
此命令清除回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區,并且將此命令的回復路徑信息插入到回復路徑緩沖區中。
(6)SOML(send or mail)
SOMLFROM:〈reverse-path>
此命令用于開始一個郵件操作將郵件內容傳送到一個或多個終端上,或者傳送到郵箱中。對于每個接收者,如果接收者終端打開,郵件內容將被傳送到接收者的終端上,否則就送到接收者的郵箱中。參數域包括回復路徑,如果成功地將信息送到終端或郵箱中此命令成功。
回復路徑包括一個可選的主機列表和發送者郵箱。當出現主機列表時,表示這是一個傳送路徑,郵件就是經過這個路徑上的每個主機發送到這里的(列表上第一個主機是最后經手的主機)。
此命令清除回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區,并且將此命令的回復路徑信息插入到回復路徑緩沖區中。
(7)SAML(send and mail)
SAMLFROM:〈reverse-path>
此命令用于開始一個郵件操作將郵件內容傳送到一個或多個終端上,并傳送到郵箱中。如果接收者終端打開,郵件內容將被傳送到接收者的終端上和接收者的郵箱中。參數域包括回復路徑,如果成功地將信息送到郵箱中此命令成功。
回復路徑包括一個可選的主機列表和發送者郵箱。當出現主機列表時,表示這是一個傳送路徑,郵件就是經過這個路徑上的每個主機發送到這里的(列表上第一個主機是最后經手的主機)。
此命令清除回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區,并且將此命令的回復路徑信息插入到回復路徑緩沖區中。
(8)VRFY(verify vt.證實,查證;證明)
VRFY〈string〉
此命令要求接收者確認參數是一個用戶。如果這是(已經知道的)用戶名,返回用戶的全名和指定的郵箱。此命令對回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區沒有影響。
(9)EXPN(expand vt.擴大;使膨脹)
EXPN〈string〉
此命令要求接收者確認參數指定了一個郵件發送列表,如果是一個郵件發送列表,就返回表中的成員。如果這是(已經知道的)用戶名,返回用戶的全名和指定的郵箱。此命令對回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區沒有影響。
(10)NOOP
NOOP
此命令不影響任何參數和已經發出的命令。它只是說明沒有任何操作而不是說明接收者發送了一個OK應答。此命令對回復路徑緩沖區,轉發路徑緩沖區和郵件內容緩沖區沒有影響。
(11)QUIT
QUIT
此命令指示接收方必須發送OK應答然后關閉傳送信道。接收方在接到QUIT命令并做出響應之前不應該關閉通信信道。發送方在發送QUIT命令和接收到響應之前也不應該關閉信道。即使出錯,也不應該關閉信道。如果連接被提前關閉,接收方應該象接收到RSET命令一樣,取消所有等待的操作,但不恢復原先已經做過的操作。而發送方應該象接收到暫時錯誤(4XX)一樣假定命令和操作仍在支持之中。
4、 SMTP響應
對SMTP命令的響應是多樣的,它確定了在郵件傳輸過程中請求和處理的同步,也保證了發送SMTP知道接收SMTP的狀態。每個命令必須有且只有一個響應。
SMTP響應由三位數字組成,其后跟一些文本。數字幫助決定下一個應該進入的狀態,而文本對人是有意義的。三位的響應已經包括了足夠的信息,不用再閱讀文本,文本可以直接拋棄或者傳遞給用戶。特別的是,文本是與接收和環境相關的,所以每次接收到的文本可能不同。在附錄E中可以看到全部的響應碼。正規的情況下,響應由下面序列構成:三位的數字,,一行文本和一個,或者也可以是一個多行響應。只有EXPN和HELP命令可以導致多行應答,然而,對所有命令,多行響應都是允許的。
三位的應答碼每一位都有特定的意義。每一位應答表示是否是成功的,失敗的或未完成的。通過這一位,不復雜的SMTP發送就可以決定下一步的操作,如果發送方希望大概了解究竟出了什么問題,它可以檢測第二位,而第三位則保存了最后更完整的信息。也就是說,從第一位到第三位,接收方可以一步比一步精確地確定接收方的狀態。
(1)對于第一位有五種可能的表示代表不同的意義:
1yz 部分完成應答
命令被接受,但是要求的操作被中止,原因在應答碼中。發送方應該再次發送另一命令指明是否繼續操作,或者放棄操作。
2yz 全部完成應答
要求的操作已經完成,可以開始另一個新的請求。
3yz 需要近一步信息的部分完成應答
命令被接受,但是要求的操作被中止,需要接收進一步的信息。發送方應該發送另一條命令指明進一步的信息。
4yz 暫時未完成應答
命令未被接受,要求的操作也未執行,但是發生錯誤的狀態是暫時的,可以再一次請求操作。發送者應該返回命令序列的開始命令(如果有的話)。很難解釋這個暫時的意義,特別對于兩個不同的站點來說。區別應答是屬于些類還是下一類的方法是:如果能夠不加任何改變地重復的再一次發送命令,就是本類的,如果不是,就是下一類(5yz)的。
5yz 永久未完成應答
命令未被接受,要求的操作未完成。發送對命令的重復不起作用。即使一些出錯條件已經改變,但是用戶已經不希望重試,而希望在未來的某個時間再進行操作
(2)應答的第二位的意義有以下幾類:
x0z 語法:此類型的應答是針對以下情況的:語法錯誤;符合語法但命令不存在功能;未完成或冗余的命令。
x1z 信息:此類型的應答是用于請求信息的,如狀態或幫助信息。
x2z 連接:此類型的應答是關于傳輸信道的。
x3z 未使用。
x4z 未使用。
x5z 郵件系統:此類型的應答指明接收方郵件系統關于請求傳送或其它操作的狀態的。
(3)第三位給出了更詳細的說明。
3.POP3
POP的全稱是 Post Office Protocol ,即郵局協議,用于電子郵件的接收,現在常用的是第三版 ,簡稱為 POP3。通過POP協議,客戶機登錄到服務器上后,可以對自己的郵件進行刪除,或是下載到本地,下載后,電子郵件客戶軟件就可以在本地對郵件進行修改、刪除等。
POP服務器一般使用的是TCP的110號端口,
以下對幾個常用的POP3命令作一個簡單的介紹。
命令 參數 狀態 描述
------------------------------------------
USER username 認可 此命令與下面的pass命令若成功,將導致狀態轉換
PASS password 認可
APOP Name,Digest 認可 Digest是MD5消息摘要
------------------------------------------
STAT None 處理 請求服務器發回關于郵箱的統計資料,如郵件總數和總字節數
UIDL [Msg#] 處理 返回郵件的唯一標識符,POP3會話的每個標識符都將是唯一的
LIST [Msg#] 處理 返回郵件數量和每個郵件的大小
RETR [Msg#] 處理 返回由參數標識的郵件的全部文本
DELE [Msg#] 處理 服務器將由參數標識的郵件標記為刪除,由quit命令執行
RSET None 處理 服務器將重置所有標記為刪除的郵件,用于撤消DELE命令
TOP [Msg#] 處理 服務器將返回由參數標識的郵件前n行內容,n必須是正整數
NOOP None 處理 服務器返回一個肯定的響應,不做任何操作。
------------------------------------------
QUIT None 更新 退出
POP3協議的基本操作:
1. 服務器通過偵聽tcp端口110開始POP3服務。
2. 當客戶需要服務時,它與服務器建立連接,連接建立后,POP3服務器發送確認消息
3. 客戶與服務器相互交互命令和響應,持續到連接終止。
POP3命令由一個命令和一些參數組成
POP3響應由一個狀態碼和一個可能跟有附加信息的命令組成。
兩種狀態碼:確定(+OK)和錯誤(-ERR)
POP3在生命周期中經歷的狀態:“確認”—“操作”—“更新”
基礎的POP3命令有:USER name 在確認狀態下有效 可選的命令:APOP name digest
PASS string
QUIT
STAT 在操作狀態下有效 TOP msg n
LIST [msg] UIDL [msg]
RETR msg
DELE msg
NOOP
REST
QUIT 在更新狀態下有效
POP3響應有:+OK -ERR
注意:除了STAT,LIST,UIDLD的響應外,其他命令的響應都為+OK和-ERR。響應后的所有文件將被客戶略去。
文章來源于領測軟件測試網 http://www.kjueaiud.com/