電子郵件系統
一個電子郵件系統應具有三個主要組成部分:使用者代理程式、郵件伺服器、郵件發送協議(如SMTP)與郵件讀取協議(如POP)。
使用者代理程式(User Agent)就是使用者與電子郵件系統的介面,在大多數情況下它就是運行在使用者PC機中的一個程式。一般具有撰寫、顯示、處理、通訊等功能。
網際網路上有許多郵件伺服器可供使用者選擇,郵件伺服器24小時不間斷地工作,並且具有大容量的郵件信箱。郵件伺服器的功能是發送和內送郵件,同時還要向發信人報告郵件傳送的情況(已交付、被拒絕、丟失等)。郵件伺服器按照客戶服務器方式工作。郵件伺服器需要使用發送和讀取兩個不同的協議。
應當注意的是,一個郵件伺服器既可以作為客戶,也可以作為伺服器。
例如,當郵件伺服器 A 向另一個郵件伺服器 B 發送郵件時,郵件伺服器 A就作為 SMTP 客戶,而 B 是 SMTP 伺服器。
當郵件伺服器 A 從另一個郵件伺服器 B 內送郵件時,郵件伺服器 A就作為 SMTP 伺服器,而 B 是 SMTP 客戶。
發送和接收電子郵件的幾個重要步驟:
(1)寄件者調用 PC 中的使用者代理程式撰寫和編輯要發送的郵件。
(2)寄件者的使用者代理程式把郵件用SMTP 協議發給發送方郵件伺服器,
(3)SMTP 伺服器把郵件臨時存放在郵件緩衝隊列中,等待發送。
(4)發送方郵件伺服器的SMTP 客戶與接收方郵件伺服器的 SMTP 伺服器建立 TCP 串連,然後就把郵件緩衝隊列中的郵件依次發送出去
(5)運行在接收方郵件伺服器中的SMTP伺服器處理序收到郵件後,把郵件放入收件者的使用者郵箱中,等待收件者進行讀取。
(6)收件者在打算收信時,就運行 PC 機中的使用者代理程式,使用 POP3(或 IMAP)協議讀取發送給自己的郵件。請注意,POP3 伺服器和 POP3 客戶之間的通訊是由 POP3 客戶發起的。
簡單郵件傳送協議SMTP
SMTP(Simple Mail Transfer Protocol)所規定的就是在兩個相互連信的 SMTP 進程之間應如何交換資訊。
由於 SMTP 使用客戶服務器方式,因此負責發送郵件的 SMTP 進程就是 SMTP 客戶,而負責內送郵件的 SMTP 進程就是 SMTP 伺服器。
SMTP 通訊的三個階段:
(1)串連建立:串連是在發送主機的 SMTP 客戶和接收主機的SMTP 伺服器之間建立的。SMTP不使用中間的郵件伺服器。
(2)郵件傳送
(3)串連釋放:郵件發送完畢後,SMTP 應釋放TCP 串連。
郵件讀取協議POP和IMAP
POP(Post Office Protocol)郵局協議是一個非常簡單、但功能有限的郵件讀取協議。現在使用的是它的第三個版本POP3。
POP 也使用客戶服務器的工作方式。在內送郵件的使用者 PC 機中必須運行 POP 客戶程式,而在使用者所串連的 ISP 的郵件伺服器中則運行 POP 伺服器程式。
POP協議支援離線郵件處理,當郵件發送到伺服器後,電子郵件用戶端會調用郵件用戶端程式,下載所有未閱讀的電子郵件(這種離線訪問模式是一種儲存轉寄服務)。當郵件從郵件伺服器發送到個人電腦上,同時郵件伺服器會刪除該郵件(但是目前很多POP3伺服器都支援“下載郵件,伺服器並不刪除郵件”,也就是說在POP3中改進了POP協議)。
另一個讀取郵件的協議是IMAP(InternetMessage Access Protocol),它比POP協議複雜很多。
IMAP 也是按客戶服務器方式工作,現在較新的是版本 4,即 IMAP4。
使用者在自己的 PC 機上就可以操縱郵件伺服器的郵箱,就像在本地操縱一樣。IMAP最大的好處就是使用者可以在不同的地方使用不同的電腦隨時上網閱讀和處理自己的郵件。
注意,不要將郵件讀取協議 POP 或 IMAP 與郵件傳送協議 SMTP 弄混。
發信人的使用者代理程式向源郵件伺服器發送郵件,以及源郵件伺服器向目的郵件伺服器發送郵件,都是使用 SMTP 協議。
而 POP 協議或 IMAP 協議則是使用者從目的郵件伺服器上讀取郵件所使用的協議。
基於全球資訊網的電子郵件
現在我們大多數情況下都是使用基於全球資訊網的電子郵件,outlook之類的使用者代理程式用戶端已經漸漸退出了市場。
不管在什麼地方,只要能夠上網,就可以藉助瀏覽器收發電子郵件。這時,郵件系統中的使用者代理程式就是普通的全球資訊網瀏覽器。
需要注意的是,瀏覽器從郵件伺服器讀取郵件,或者向郵件伺服器發送郵件使用的是HTTP協議,而不是IMAP(POP)或SMTP。
例如,一個網易信箱使用者向新浪信箱使用者通過瀏覽器發送郵件,各階段使用的協議如下:
多用途網際網路郵件擴充MIME
SMTP有以下不足:
SMTP 不能傳送可執行檔或其他的二進位對象。
SMTP 限於傳送 7 位的 ASCII 碼。許多其他非英語國家的文字(如中文、俄文,甚至帶重音符號的法文或德文)就無法傳送。
SMTP 伺服器會拒絕超過一定長度的郵件。
於是在這種情況下就提出了MIME(Multipurpose InternetMail Extensions)。MIME 並沒有改動 SMTP 或取代它。MIME 的意圖是繼續使用目前的格式,但增加了郵件主體的結構,並定義了傳送非 ASCII 碼的編碼規則。
MIME 和 SMTP 的關係如下:
MIME類型就是設定某種副檔名的檔案用一種應用程式來開啟的方式類型,當該副檔名檔案被訪問的時候,瀏覽器會自動使用指定應用程式來開啟。多用於指定一些用戶端自訂的檔案名稱,以及一些媒體檔案開啟檔案。
常見的MIME類型如下:
MIME類型 |
副檔名 |
檔案類型 |
application/msexcel |
*.xls *.xla |
Microsoft Excel Dateien |
application/mshelp |
*.hlp *.chm |
Microsoft Windows Hilfe Dateien |
application/mspowerpoint |
*.ppt *.ppz *.pps *.pot |
Microsoft Powerpoint Dateien |
application/msword |
*.doc *.dot |
Microsoft Word Dateien |
application/octet-stream |
*.exe |
exe |
application/pdf |
*.pdf |
Adobe PDF-Dateien |
application/post****** |
*.ai *.eps *.ps |
Adobe Post******-Dateien |
application/rtf |
*.rtf |
Microsoft RTF-Dateien |
application/x-httpd-php |
*.php *.phtml |
PHP-Dateien |
application/x-java****** |
*.js |
serverseitige Java******-Dateien |
application/x-shockwave-flash |
*.swf *.cab |
Flash Shockwave-Dateien |
application/zip |
*.zip |
ZIP-Archivdateien |
audio/basic |
*.au *.snd |
Sound-Dateien |
audio/mpeg |
*.mp3 |
MPEG-Dateien |
audio/x-midi |
*.mid *.midi |
MIDI-Dateien |
audio/x-mpeg |
*.mp2 |
MPEG-Dateien |
audio/x-wav |
*.wav |
Wav-Dateien |
image/gif |
*.gif |
GIF-Dateien |
image/jpeg |
*.jpeg *.jpg *.jpe |
JPEG-Dateien |
image/x-windowdump |
*.xwd |
X-Windows Dump |
text/css |
*.css |
CSS Stylesheet-Dateien |
text/html |
*.htm *.html *.shtml |
-Dateien |
text/java****** |
*.js |
Java******-Dateien |
text/plain |
*.txt |
reine Textdateien |
video/mpeg |
*.mpeg *.mpg *.mpe |
MPEG-Dateien |
video/vnd.rn-realvideo |
*.rmvb |
realplay-Dateien |
video/quicktime |
*.qt *.mov |
Quicktime-Dateien |
video/vnd.vivo |
*viv *.vivo |
Vivo-Dateien |