一、體系結(jié)構(gòu)和服務(wù)
電子郵件系統(tǒng)的兩個子系統(tǒng):
用戶代理(user agent):允許人們讀取和發(fā)送電子郵件;是一個本地程序,提供命令行方式、菜單方式或圖形方式的界面來與電子郵件系統(tǒng)交互。
消息傳輸代理(message transfer agent):將消息從出發(fā)地傳到目的地;是在后臺運行的系統(tǒng)幽靈程序,在系統(tǒng)間傳輸電子郵件。
電子郵件系統(tǒng)支持的5個基本功能:
撰寫(composition):創(chuàng)建消息和回答的過程。
傳輸(transfer):將消息從寄出者送到接收者。
告訴發(fā)信者消息的情況(是否已發(fā)送、被拒收或丟失?)
顯示(displaying):使人們能夠閱讀自己的電子郵件。
處理(disposition):最后一步,關(guān)心接收者收到消息如何處理它。
電子郵件系統(tǒng)的多種高級特性:
當暫時離開時,具有電子郵件自動轉(zhuǎn)發(fā)功能;
提供命令來創(chuàng)建和銷毀郵箱,檢查郵箱內(nèi)容,從郵箱插入或刪除消息等;
收件人列表(mailing list):即電子郵件地址的列表,當一條消息寄往收件人列表時,則向列表中的每一個對象都發(fā)送一個同樣的拷貝;
掛號電子郵件:使發(fā)信者知道自己的消息是否已到達,在任何情況下發(fā)信者對于應(yīng)報告的內(nèi)容有一定控制權(quán);
其他:拷貝、高優(yōu)先級電子郵件、秘密(加密)電子郵件、第一個收信人找不到時寄給其他接收者,以及秘書處理自己老板的電子郵件的能力。
二、電子郵件信息格式
電子郵件信息的格式:
頭部(header):包括有關(guān)發(fā)送方、接收方、郵件內(nèi)容等方面的信息。
主體(body):包括信息的文本。
頭部——收發(fā)信息時頭部需保持標準格式
頭部格式:
<關(guān)鍵字>:<附加信息>
關(guān)鍵字:告訴電子郵件軟件如何翻譯該行中剩下的內(nèi)容。
有些關(guān)鍵字在電子郵件頭部是必須的,另一些是可選的。
例如:
<to>:<一個或多個電子郵件地址>
< from >:<發(fā)送方的電子郵件地址>
關(guān)鍵字
含義
from
發(fā)送方地址
to
接收方地址
cc
復(fù)寫副本地址
date
信息發(fā)送日期
subject
信息主題
reply -to
回復(fù)的地址
x-charset
使用的字符集 (通常為ascii)
x-mailer
發(fā)送信息所使用的軟件
x-sender
發(fā)送方地址的副本
x-face
經(jīng)編碼的發(fā)送方面孔圖像
信封(envelope)——封裝著消息,被消息傳輸代理用來選擇路由
內(nèi)容:與消息本身不同,包括用來傳輸消息所需的所有信息,如收件人地址、優(yōu)先級和安全等級。
信封中的消息的格式:
頭部(header):包括用戶代理的控制信息。
主體(body):寫給收信者的內(nèi)容。
兩個可選的附加行:包括信息發(fā)出的日期及信息的主題。
三、多用途互聯(lián)網(wǎng)郵件擴充協(xié)議mime——由ietf發(fā)明
為使電子郵件系統(tǒng)能處理二進制數(shù)據(jù),需要將二進制數(shù)據(jù)編碼成文本形式!
原理:在使用mime時,發(fā)送方在頭部包含一些附加行說明信息遵循mime格式,或是在主體中增加一些附加行說明數(shù)據(jù)編碼的類型。
特點:主要優(yōu)點在于靈活性,允許發(fā)送方和接收方選擇方便的編碼方法,允許使用任何時候發(fā)明的新的編碼方式,并且與老電子郵件系統(tǒng)是兼容的;
允許發(fā)送方將信息分成幾個部分,并對每個部分指定不同的編碼方法,使得用戶可以在同一個信息中既發(fā)送文本又發(fā)送圖像。
實現(xiàn):在電子郵件頭部增加兩行,一行用來聲明使用mime生成信息;另一行說明mime信息是如何包含在主體中的。
例如:頭部:mime - version:1.0
content-type:multipart/mixed; boundary=mime_separator
說明: 信息是使用mime版本1.0生成的;
包含mime_separator的行將出現(xiàn)在主體信息的每個部分之前。
當mime用來發(fā)送標準文本信息時,第二行變?yōu)椋?content - type:text/plain
四、消息傳輸
用戶寫完電子郵件并指定接收方后,電子郵件軟件將信息的副本發(fā)送給每個接收方!
郵件傳輸程序:包含在下層電子郵件系統(tǒng)中,處理將信息副本發(fā)送給一臺遠程計算機的細節(jié)。
郵件傳輸程序需要作為一個客戶與遠程機器上的服務(wù)器通信!(如圖所示)
客戶向服務(wù)器發(fā)送信息;
服務(wù)器將信息副本放人接收方的郵箱。
過程:
用戶在寫信息或讀接收到的信息時與電子郵件接口程序進行交互
\/
用戶寫完郵件時,電子郵件接口將該信息置于一個隊列中,交給郵件傳輸程序管理
\/
郵件傳輸程序等待放入隊列的信息,然后向每個接收方發(fā)送該信息的副本
(向本地計算機上的接收方發(fā)送信息副本較簡單,向遠程用戶發(fā)送副本相對復(fù)雜)
多重接收優(yōu)化:可以處理所有接收方同時處于同一臺遠程計算機上的情況。
假設(shè):計算機nonexist.com上的一個用戶向三個位于foobar.com的用戶發(fā)送信息。
解決:nonexist.com上的郵件傳輸程序不必與foobar.com上的服務(wù)器建立三個不同的連接,只需與服務(wù)器建立單個連接,說明所有的三個接收方,然后將信息的單個副本傳輸過去,服務(wù)器接收信息后,向每個接收方傳遞一個副本。
多重接收優(yōu)化的重要性:
第一,極大地降低了傳輸電子郵件對網(wǎng)絡(luò)帶寬的要求;
第二,優(yōu)化減少了所有用戶接收同一信息副本時的延遲,在同一臺計算機上擁有郵箱的用戶幾乎能在同一時間收到信息的副本;
第三,如果處于發(fā)送方和接收方之間的互聯(lián)網(wǎng)發(fā)生故障,所有接收方要么都收到了信息的副本,要么都沒有收到。
1.簡單郵件傳輸協(xié)議(smtp)——使用tcp連接進行通信時遵循簡單傳輸協(xié)議!
功能:允許發(fā)送方說明自己,指定接收方,以及傳輸電子郵件信息。
盡管郵件傳輸看起來很簡單,但smtp協(xié)議仍須處理許多細節(jié)!
例如:
要求可靠傳遞,發(fā)送方須保存信息副本,直到接收方將副本放至不易失的存儲器; smtp允許發(fā)送方詢問在服務(wù)器所在的計算機上是否存在一個給定的郵箱。
2.郵件分發(fā)器、列表和轉(zhuǎn)發(fā)器
分發(fā)器:使用郵件列表(mailing list)數(shù)據(jù)庫來決定如何處理信息,數(shù)據(jù)庫中每一項是一組電子郵件地址,同時被賦予一個名字以及自己的電子郵件地址。
——使得發(fā)送方與一組人通過電子郵件進行通信時不需清楚地指明所有接收方。
當電子郵件信息到達時,郵件分發(fā)器檢查目標地址,如果目標地址在數(shù)據(jù)庫中出現(xiàn),分發(fā)器就將信息的副本轉(zhuǎn)發(fā)給表中的每個地址!
要想接收到發(fā)往該組的郵件,就必須請求在列表中加上自己的電子郵件地址!
要使郵件列表地址完整,還必須在名字后加上分發(fā)器所運行的計算機的名字!
例如:若分發(fā)器運行在計算機diangon.com上,則第一個郵件列表全名為:liliang@diangon.com。
列表
內(nèi)容
friends
joe@diangon.com,jill@bar.gov, tim@stateu.edu, mary@acollege.edu,hank@diangon.com
customers
george@diangon.com,vp_marketing@diangon.com
bball-interest
hank@diangon.com,connie@foo.edu, linda_s_smith@diangon.com, john_q_public@diangon.com
郵件網(wǎng)關(guān)(e-mail gateway)——用來完成轉(zhuǎn)發(fā)電于郵件任務(wù)的計算機!
分發(fā)器程序在郵件網(wǎng)關(guān)內(nèi)部接收發(fā)給郵件列表的信息,并將副本轉(zhuǎn)發(fā)給列表中的每個接收方!
電子郵件網(wǎng)關(guān):專門用于處理電子郵件的計算機,或稱為電子郵件中繼。
大多數(shù)電子郵件網(wǎng)關(guān)所保存的郵件列表是公共的——任何人都可以加人列表,任何人都可以向列表發(fā)送信息。
如圖所示,一個信息至少通過internet兩次!
4.自動郵件列表
想法:編寫一個程序,在沒有人工介入的情況下利用電子郵件處理日常雜務(wù)!
例如:電子郵件可用來獲取文檔,編寫一個程序接收包含文檔名信息的電子郵件!
該程序?qū)⑽臋n的副本放入一個電子郵件中,然后將該信息自動發(fā)給提出請求的人。
列表管理者(list manager):該自動程序與電子郵件分發(fā)器結(jié)合起來,自動地保存分發(fā)器的郵件列表數(shù)據(jù)庫。
通過向列表管理者程序發(fā)送一個電子郵件信息,來創(chuàng)建新的郵件列表,用戶可將自己的地址添加到表中,或?qū)⒆约旱牡刂窂谋碇幸迫ァ?
例如,一個列表管理者期望收到的電子郵件包含命令:
add mailbox to list
mailbox是電子郵件地址; list是郵件列表的名字。
優(yōu)點:從參與者的角度來看,自動管理改進了服務(wù),因為它允許參與者加入或離開列表,而不需要與別人通信或等待有人輸入更改信息;從列表所有者角度來看,自動管理減少了維護列表的開銷。
5.郵件中繼與電子郵件地址
擁有多臺計算機的組織有許多電子郵件地址,為了防止混亂和統(tǒng)一所有職員的電子郵件地址,可以選擇運行一個郵件網(wǎng)關(guān),并將所有電子郵件地址與該中繼網(wǎng)關(guān)相關(guān)聯(lián)!
例如,foobar公司郵件網(wǎng)關(guān)計算機名為:diangon.com
則公司可按如下形式給每個職員分派電子郵件地址:employee@diangon.com
發(fā)給foobar公司職員的電子郵件將到達郵件網(wǎng)關(guān)計算機,網(wǎng)關(guān)的數(shù)據(jù)庫需使用郵件列表包含每個職員的項以說明職員的郵箱在哪臺計算機上,并將簡單接收方的外部電子郵件標識與內(nèi)部郵箱相對應(yīng)!
電子郵件網(wǎng)關(guān)上的數(shù)據(jù)庫允許外部和內(nèi)部的地址不同,外部電子郵件地址可以與特定計算機系統(tǒng)的郵箱標識無關(guān)!
例如,職員john t.doe使用計算機bubbles.soap.diangon.com,并有7位數(shù)8456311作為郵箱標識; 則公司郵件網(wǎng)關(guān)中的表項可能為john_t_doe,內(nèi)容為:
84563ll@bubbles.soap.diangon.com
優(yōu)點:在整個組織中統(tǒng)一電子郵件地址外;提供靈活性,組織可以移動或重命名一臺計算機而不需要改變職員的電子郵件地址。
6.郵箱訪問——郵局協(xié)議,提供對電子郵箱進行遠程存取如果計算機不運行郵件服務(wù)器,郵箱就無法放到計算機上!
郵局協(xié)議(pop):包含在tcp/ip協(xié)議中,將用戶的郵箱安置于運行郵件服務(wù)器的計算機上,并允許用戶從另一臺計算機對郵箱的內(nèi)容進行存取,需要在郵箱所在的計算機上運行一個附加的使用pop協(xié)議的服務(wù)器。
用戶運行的電子郵件軟件成為該pop服務(wù)器的客戶,對郵箱的內(nèi)容進行存取。
電子郵件服務(wù)器和pop服務(wù)器的區(qū)別:
第一,郵件服務(wù)器使用smtp協(xié)議,而pop服務(wù)器使用pop協(xié)議;
第二,郵件服務(wù)器接收來自任意發(fā)送方的信息,而pop服務(wù)器只有在用戶輸入鑒別信息(如密碼)后才允許對郵箱進行訪問;
第三,郵件服務(wù)器只能傳輸電子郵件信息,而pop服務(wù)器還能提供郵箱內(nèi)容的信息。
7.撥號連接與pop
pop對于依靠撥號連接的用戶來說特別普遍!
用戶計算機不需要與internet建立永久連接!
接收電子郵件時,用戶通過調(diào)制解調(diào)器與郵箱所在計算機或internet上其他的計算機建立一個撥號連接,連接成功后就可以運行pop客戶,與服務(wù)器通信并收發(fā)電子郵件。