|
1. Email系統(tǒng)的基本原理
[1]internet地址 (1)標(biāo)準(zhǔn)的internet地址 所有Internet的地址通用形式為: userid(用戶標(biāo)識)@domain(域名) 例:qinghua0000@sohu.com harley@fuzzball.ucsb.edu (2)域名與子域 用戶標(biāo)識不是唯一的,唯一所具備的條件呢就是用戶標(biāo)識與域名的結(jié)合必須是唯一的,在同一個(gè)域中的用戶標(biāo)識不能相同。其中的域名包含若干子域。值得注意的是,一種具有兩個(gè)子域的地址,通常要么這個(gè)機(jī)構(gòu)很小,要么很大(像sohu.com)。sohu是擁有多臺計(jì)算機(jī)的大機(jī)構(gòu);在這樣的機(jī)構(gòu)中,有一臺計(jì)算機(jī)專用作與外部世界之間電子郵件的收發(fā)。該機(jī)構(gòu)的系統(tǒng)管理員為每個(gè)人都安排有簡單化的郵件地址。以便能夠在sohu.com地址上收發(fā)郵件。 一般,術(shù)語“gateway”(網(wǎng)關(guān))涉及的是兩個(gè)不同系統(tǒng)之間的連接,假如我們有一個(gè)網(wǎng)關(guān)(gateway),網(wǎng)關(guān)起著內(nèi)部網(wǎng)絡(luò)與外部世界之間的連接作用。因網(wǎng)關(guān)有用戶標(biāo)識和本地地址表;當(dāng)一個(gè)郵件到達(dá)時(shí),網(wǎng)關(guān)就可以校查該表,并把該郵件發(fā)送給相應(yīng)的本地計(jì)算機(jī)。 (3)最高級域 一般有兩種形式的最高級域:一般稱之為機(jī)構(gòu)域,還有一種稱之為地區(qū)域。
com 商業(yè)機(jī)構(gòu) (全稱:commercialorganization) edu 教育機(jī)構(gòu) (全稱:educationalinstitution) gov 政府部門 (全稱:government) int 國際性機(jī)構(gòu) (全稱:internationalorganization) mil 軍隊(duì) (全稱:military) net 網(wǎng)絡(luò)機(jī)構(gòu) (全稱:networhimgorganization) org 非盈利機(jī)構(gòu) (全稱:non-profitorganization)
最高級域機(jī)構(gòu)名屬性對照
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地址 有許多機(jī)構(gòu)希望與Internet相連接,但是沒有時(shí)間或經(jīng)費(fèi)與Internet保持長期的連接。作為一個(gè)替代的方法,它們與附近的Internet點(diǎn)商定,讓其作為它們的郵件代理。僅從這個(gè)地址,常常無法斷定計(jì)算機(jī)是否真正與Internet相連接。如果要確切知道一臺計(jì)算機(jī)是否與Internet連接,可使用host命令。 (5)IP地址與 host命令 可以在使用正規(guī)地址的任何地方使用IP地址。Internet的地址記錄系統(tǒng)叫做域名系統(tǒng)或DNS。DNS是將域名地址與IP數(shù)字地址這兩個(gè)版本來回轉(zhuǎn)換的一種TCP/IP服務(wù)。 如果要測試 DNS,可以使用host命令。有以下兩種格式: host standard-address host IP-address 如果你從一個(gè)標(biāo)準(zhǔn)地址入手: host ucsd.edu DNS將顯示IP地址: host 128.54.16.1 反之如果你從一個(gè)IP地址入手,DNS將顯示標(biāo)準(zhǔn)地址。 只有Internet主機(jī)才有IP地址(仿真終端是沒有的)。因此,可以使用host命令檢查計(jì)算機(jī)是否與Internet直接連接。如使用host能測試出IP地址,說明該計(jì)算機(jī)是與Internet連接的。 如果指定的地址是未與Internet直接連接的計(jì)算機(jī)的。將看到: host not found host 命令并不適用于所有的計(jì)算機(jī)。如果你的系統(tǒng)沒有host,請?jiān)囈幌耼slookup或nstest。 (6)UUCP 所有Unix系統(tǒng)都有一個(gè)叫做UUCP的內(nèi)置聯(lián)網(wǎng)系統(tǒng)。UUCP是一組程序。名字UUXP來自這些程序中的一個(gè)程序,該UUCP程序?qū)⑽募赨nix系統(tǒng)之間相互拷貝,因此這個(gè)名字的意思是“Unix到Unix拷貝”。 UUCP的功能不及TCP/IP強(qiáng)。例如,UUCP不能提供遠(yuǎn)程登錄UUCP郵件程序比Internet慢,并更難用。但是UUCP有一個(gè)重要的優(yōu)點(diǎn),它是一個(gè)標(biāo)準(zhǔn)的Unix部分(適合于絕大多數(shù)系統(tǒng)),它通過撥號或電纜直接連接運(yùn)行,既便宜又可靠。UUCP的作用是使Unix系統(tǒng)連接到一起,形成一個(gè)鏈。例如,假定你正在使用一臺名為alpha的計(jì)算機(jī),你的計(jì)算機(jī)就與另一臺名為beta的計(jì)算機(jī)連接起來了,beta計(jì)算機(jī)與gamma計(jì)算機(jī)連接,gamma計(jì)算機(jī)再與delta計(jì)算機(jī)連接。 它提供了一種經(jīng)濟(jì)的方式在計(jì)算機(jī)之間遠(yuǎn)距離傳送郵件。但是,有一個(gè)重要的缺點(diǎn):由于許多UUCP連接是通過電話線,而且在某些預(yù)定的時(shí)間內(nèi)實(shí)現(xiàn)的郵件投送可能需數(shù)小時(shí),甚至好幾天。將還種方式與Internet比較,在Internet中,連接是永久的,信息件遞很迅速,常常在幾秒鐘內(nèi),一般在幾分鐘內(nèi)就可以完成。 (7)UUCP地址和Bang路徑 建立一個(gè)由名字依次排列組成的地址,名字之間用!符號分開。例如,下面是一個(gè)將上面提到的用戶標(biāo)識發(fā)送信息的郵件命令。 mailbeta!gamma!delta!murray 在Unix術(shù)語中,!符號的專門術(shù)語名字之一是bang。因此,一個(gè)指定多重名字的UUCP地址有時(shí)叫做bang路徑(bangpath)。 (8)簡化的UUCP地址 為了使得UUCP獲取地址方便,采取了一個(gè)叫做UUCPmappingproject(UUCP圖示方案)的措施。該方案定期出版數(shù)據(jù)“地圖”,發(fā)送到許多關(guān)鍵UUCP計(jì)算機(jī),當(dāng)UUCP郵件到達(dá)這些計(jì)算機(jī)時(shí),計(jì)算機(jī)可以查看這個(gè)圖,確定使用的最佳路徑。實(shí)質(zhì)上這樣可使你使用的UUCP地址與Internet地址相同,讓該系統(tǒng)做這項(xiàng)工作。 因此,有時(shí)可能看見一種使用UUCP的最高級域的地址。例如,你可以用以下地址發(fā)送郵件: albert@gendeau.uucp 當(dāng)使用這樣一個(gè)地址時(shí),就等于向郵件路由軟件發(fā)出了一個(gè)信號,讓它找出UUCP圖示數(shù)據(jù)中的名字和指出最佳使用路徑。
[2]INTERNET郵件系統(tǒng)
(1)intrenet電子郵件系統(tǒng)基礎(chǔ)
<1> 傳送受理程序 郵件系統(tǒng)是可輸送各類信息的綜合服務(wù)系統(tǒng):像文獻(xiàn)、印刷品、計(jì)算機(jī)程序等。而唯一所需的是用ASCII字碼(即可用鍵盤錄入的數(shù)據(jù))存貯數(shù)據(jù)。 在有些情況下,也可傳送非文本資料,如圖像或錄音。 SMTP,表示簡易郵件傳送協(xié)議(SimpleMailTransferProtocol),它是TCP/IP系列協(xié)議的一部分。它解釋郵件的格式和說明怎樣處理投遞的郵件。每一臺Internet計(jì)算機(jī)在運(yùn)行郵件程序時(shí),可自動(dòng)地確保郵件以標(biāo)準(zhǔn)格式選址和傳送。這個(gè)程序稱為傳送受理程序(transport agent),它按照SMTP協(xié)議工作并將你的郵件聯(lián)系向外界發(fā)送。 在大多數(shù)系統(tǒng)中,傳送受理程序在“后臺”中運(yùn)行,隨時(shí)對可能收到的任何要求作出反應(yīng)。在Unix系統(tǒng)術(shù)語中,這個(gè)程序稱之為“守護(hù)神”,即智能程序(daemon)(是的,完全可以這樣稱呼)。 每一個(gè)Unix系統(tǒng)都有各種隱放在“后臺”的智能程序無聲地為你服務(wù)。從理論上講,不論你的系統(tǒng)使用的是什么傳送受理程序,只要它能用SMTP收發(fā)郵件文件就行。大多數(shù)Unix系統(tǒng)使用一種叫“傳送郵件(sendmail)”的智能程序。 <2>電子郵件系統(tǒng)接口(Interface) a. 用戶郵件程序: 做為一個(gè)用戶,你不會(huì)直接與你系統(tǒng)中的傳送受理程序發(fā)生聯(lián)系;只是在機(jī)器內(nèi)部通過SMTP運(yùn)行收發(fā)郵件,你使用的這種郵件程序叫作用戶郵件程序. 最廣泛使用的用戶郵件程序是Unix郵件程序。BSD用戶郵件程序稱為mailx,SystemV用戶郵件程序稱為Mail。 b.Unix基礎(chǔ)郵件程序 通用的有ELM(全屏) 、PINE(菜單驅(qū)動(dòng))、MH(文件操作者)、MUSH (Zmail)、RMAIL(Emacs是一個(gè)建立在功能強(qiáng)大的文本編輯程序上的完整工作環(huán)境。在Emacs環(huán)境中,你不僅能編輯文本,還能編制擴(kuò)展程序,閱讀Usenet(用戶網(wǎng))文章,操作Rmail收發(fā)郵件) C.郵件信頭編寫 標(biāo)準(zhǔn)格式的郵件是由兩部分組成:“信頭”和“主體”。信頭包括在文件開始處的信息行。主體實(shí)際上是你所表達(dá)的信件內(nèi)容。 下面是一個(gè)樣本文件。信頭格式在操作系統(tǒng)中也許有變動(dòng),但主要內(nèi)容不變。
Fromrick@tsi.com WedMar3114:47:021993(From+地址+時(shí)間) 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點(diǎn)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日星期三,時(shí)間13:17:40PST 接收:來自tsi.com by ucsd.edu;idAA03169 傳送郵件通過SMTP5.67/UCSD-2.2sun 93年3月31日星期三時(shí)間13:25:520800到harley@fuzzball.ucsb.edu 接收:由sdcc12.UCSD.EDU(4.1/UCSDGENERIC.3) 發(fā)送id AA25582至harley@fuzzball.ucsb.edu; 93年3月31日星期三;13:23:51PST 日期:93年3月31日星湖三13:23:51PST 來源: rick@tsi.com(Rick Stout) 文件標(biāo)識符:93O3311840.AA06711@tsi X-郵件者: Mail User‘s Shell(7.1.27/11/90) 至: harley@fuzzball.ucsb.edu 標(biāo)題:具體題目 副本(Cc): addie@nipper.com kim@nipper.com 狀態(tài):RO Harley:在下星期四下午,我安排了一次會(huì)見,請告知我你是否參加。 Rick
以上例子說明,在信頭中的第一行總是單詞“ From”,該行表明發(fā)信人的地址。在我們這個(gè)例子中,文件是從rick@tsi.com發(fā)來的。其它行即不必以同樣的順序顯示。這取決于收發(fā)郵件系統(tǒng)是怎樣構(gòu)成的,也取決于在你特別的郵件程序設(shè)置的是什么選擇。在最初的“From”行后有十四行包括五條Received說明的技術(shù)信息。這些字行表明該文件所取的路徑、時(shí)間、日期和操作過程中每一步應(yīng)使用什么程序。郵件程序常顯示一個(gè)“狀態(tài)”行??墒?,幾乎沒有人知道不同的設(shè)計(jì)表示什么,這一般查不到。
d.用MIME傳送二進(jìn)制數(shù)據(jù)(多功能Internet郵件擴(kuò)展程序) 為了收發(fā)二進(jìn)制數(shù)據(jù),你必須具有用來支持MIME的一個(gè)用戶郵件程序(郵件程序);MIME標(biāo)準(zhǔn)現(xiàn)已成為Internet電子郵件的主流,我們現(xiàn)在最常使用的電子郵件軟件Eudora、Netscap e Mail、Internet Mail就是采用MIME方式。MIME定義兩種編碼萬式:Base64與QP(Quote-Printable)。QP的規(guī)則是對于資料中的7位無須重復(fù)編碼,僅將8位的數(shù)據(jù)轉(zhuǎn)成7位。QP編碼適用于ASCII碼的及字內(nèi)容,例如我們的中文文件。而Base64 的編碼規(guī)則是將整個(gè)文件重新編碼成7位,通常用于傳送二進(jìn)制文件。編碼的方式不同會(huì)影響編碼之后的文件大小。而具有MIME功能的E-mail軟件大都能自動(dòng)判別你的郵件是采用何種編碼,然后自動(dòng)選擇用QP或Base64來解碼。
[3]基本的網(wǎng)絡(luò)協(xié)議
(1)SMTP 下圖顯示了SMTP的基本模型。發(fā)送方建立起與接收方SMTP的通信。在傳輸郵件之前,兩個(gè)SMTP實(shí)體可以交換口令或其他鑒別信號,然后發(fā)送方發(fā)出一個(gè)特殊命令,稱為MAIL,該命令給出了發(fā)送方的標(biāo)識及一些有關(guān)郵件交換的其他信息。接收方必須返回一個(gè)對MAIL命令的確認(rèn)。在SMTP中,該確認(rèn)可寫為250,在另一些文檔中,該確認(rèn)為250 OK。不管是哪一種格式,確認(rèn)表示所要求的郵件操作完成了。 圖一、 SMTP模型 郵件傳輸過程的下一步是傳輸RCPT命令以標(biāo)識報(bào)文的目的端,接收方仍必須給出對該命令的一個(gè)確認(rèn)。 第三步是發(fā)送DATA命令。發(fā)送方SMTP發(fā)出該命令提醒接收方一個(gè)報(bào)文就要到達(dá)了。在發(fā)送了該命分之后,發(fā)送方SMTP便一行接一行地發(fā)送數(shù)據(jù),直到發(fā)送方發(fā)出了一個(gè)特殊的控制字符序列,表示報(bào)文結(jié)束了。這時(shí),服務(wù)器使用QUIT命令終止該過程。 (1.1)地址段格式 發(fā)送方SMTP使用了一個(gè)標(biāo)準(zhǔn)的送地址和接收地址格式,它們的形式如下: local-part@domain-name 因此SMTP名字遵從了域名系統(tǒng)(DNS)的概念,一些系統(tǒng)使用一個(gè)服務(wù)器,將該名字映射成IP地址。實(shí)際應(yīng)用中,這種格式可能出現(xiàn)為: Jones@beta.aus.edu 其中本地用戶名為Jones,beta.aus.edu是Jones的域標(biāo)識符。Iocal-part@domain-name還可能采取其他形式以表示如下含義: 2 一個(gè)直接的連接(use@host) 2 郵件接收方位于一臺非SMTP主機(jī),通過一個(gè)郵件網(wǎng)關(guān)接收郵件(user%remote-host@gateway-host) 2 多臺主機(jī)間的應(yīng)答(@host-b@host-c@hostd)
(2)POP3 首先,P O P 3服務(wù)器啟動(dòng)P O P 3服務(wù),并監(jiān)聽110端口。當(dāng)客戶機(jī)要僅用P O P 3服務(wù)時(shí),它先與 POP3服務(wù)器建立一條TCP連接。若連接成功建立,POP3服務(wù)器向客戶端發(fā)送一條歡迎消息,然后客戶機(jī)與POP3服務(wù)器之間就可以進(jìn)入命令交互和響應(yīng)狀態(tài),直到連接關(guān)閉或異常中斷。 每個(gè)POP3會(huì)話總是處于一系列的狀態(tài)變化中。一旦客戶機(jī)與POP3服務(wù)器之間的TCP連接建立起來并且POP3服務(wù)器的歡迎言息傳到客戶端。POP3會(huì)話過程就進(jìn)入認(rèn)證狀態(tài)。在該狀態(tài)下,客戶機(jī)必須進(jìn)行身份驗(yàn)證。一旦驗(yàn)證通過,并且POP3服務(wù)器獲得足夠的資源打開用戶的郵箱。這時(shí)POP3會(huì)話過程進(jìn)入“命令交互狀態(tài)”。在“命令交互狀態(tài)”下,客戶端可以向POP3服務(wù)器提出各科服務(wù)請求,由POP3服務(wù)器完成該服務(wù)并返回成功或失敗的響應(yīng)信息。當(dāng)客戶端發(fā)出“QUIT’命令后,POP3會(huì)話過程進(jìn)入“更新狀態(tài)”。在“更新狀態(tài)”下,POP3服務(wù)器釋放在“命令交互狀態(tài)”下獲得的資源,更新用戶郵箱,然后關(guān)閉TCP連接。 (2.1)POP3的基本命令 2 USER 這個(gè)命令以用戶的賬號名稱作為參數(shù)。 2 PASS 這個(gè)命令以用戶的口令作為參數(shù),缺省情況下用戶的口令將以明文在網(wǎng)絡(luò)上傳輸。 2 STAT 該命令無參數(shù),僅用于“命令交互狀態(tài)”。 獲取當(dāng)前用戶郵件總數(shù)和郵件總大小。POP3服務(wù)器返回一個(gè)成功的響應(yīng),以“+OK”開頭,后跟一個(gè)空格字符,然后是當(dāng)前用戶郵箱內(nèi)郵件的總數(shù),之后又是一個(gè)空格字符,最后是用戶郵件的總大小(BYTES)。 C: STAT S: +OK 2320 2 LIST 該命令可以沒有參數(shù)也可以有一個(gè)參數(shù),該參數(shù)代表郵件的序 號,但該序號不能是已刪除郵件。 該命令僅用于“命令交互狀態(tài)”。 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. 2 RETR 該命令必須帶有一個(gè)郵件序號,該郵件序號不能是已刪除郵件。 該命令僅用于“命令交互狀態(tài)”。 若POP3服務(wù)器返回一個(gè)成功響應(yīng),則隨后的響應(yīng)屬于多行響應(yīng)。在首行“+OK”響應(yīng)之后,POP3服務(wù)器把對應(yīng)于該郵件序號的郵件發(fā)送到客戶端。 C: RETR 1 S: +OK 120 octets S: < The PoP3 server sends the entire message here> C: RETR 5 S: -ERR no such message. 2 DELE 該命令必須帶一個(gè)郵件序號參數(shù)。僅用于“命令交互狀態(tài)” POP3服務(wù)器把該郵件標(biāo)志為“已刪除”,之后,任何對該郵件的操作都將返回錯(cuò)誤。POP3服務(wù)器并不實(shí)際刪除該郵件,除非POP3會(huì)話進(jìn)“更新狀態(tài)”。 C: DELE 1 S: +OK message 1 deleted ...... C: DELE 1 S: -ERR message 2 already deleted 2 NOOP 該命令不待參數(shù),實(shí)際上也不做任何事情。僅用于“命令交互狀態(tài)”。 C: NOOP S: +OK 2 RSET 該命今不帶參數(shù)。僅用于“命令交互狀態(tài)”。 POP3服務(wù)器將所有已被標(biāo)志為刪除的郵件的刪除標(biāo)志取消,并返回成功響應(yīng)。 C: RSET S: +OK maildrop has 2 messages ( 320 octets) 2 QUIT 該命令無參數(shù),僅用于“命令交互狀態(tài)”。 POP3服務(wù)器把所有已標(biāo)志為刪除的郵%B
|