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