電子郵件
一、.概述
- 電子郵件(e-mail)是因特網上使用得最多的和最受用戶歡迎的一種應用。
- 電子郵件把郵件發送到收件人使用的郵件服務器,並放在其中的收件人郵箱中,收件人可隨時上網到自己使用的郵件服務器進行讀取。
1.1.電子郵件使用的協議
- 發送郵件的協議:SMTP
- 讀取郵件的協議:POP3 和 IMAP
- MIME 在其郵件首部中說明了郵件的數據類型(如文本、聲音、圖像、視像等),使用 MIME 可在郵件中同時傳送多種類型的數據。
1.2.發送電子郵件的過程
簡略圖例為:

- 如圖用戶x在qq服務器上注冊了郵箱:x@qq.com;用戶y在163服務器上注冊了郵箱:y@163.com;這樣qq服務器和163服務器就會分別給用戶x和y分配一塊空間,稱為郵局,地址為他們的郵箱地址。郵局分為收件箱與發件箱。
- 用戶需要在計算機上安裝郵件服務器的客戶端,比如:Fox mail。用戶x使用Fox mail通過身份驗證后可登錄到個人的郵箱:x@qq.com,並可以下載收件箱中的郵件。
- 當用戶x想發郵件給用戶y時,在Fox mail中新建郵件,郵件的目標地址為:y@163.com,並放入其發件箱中。隨后Fox mail把發件箱中的郵件通過SMTP協議發送到郵局的收件箱中。郵局:x@qq.com通過DNS服務器查找郵件交換機錄找出郵局:y@163.com的IP地址,並通過發件箱使用SMTP協議發送到郵局:y@163.com的收件箱中。最后,用戶y使用Fox mail通過身份驗證后,使用POP3或IMAP協議從郵局:y@163.com的收件箱中下載郵件。由此用戶y收到用戶x發出的郵件。
詳細圖例為:

- 用戶代理 UA(User Agent) 就是用戶與電子郵件系統的接口,是電子郵件客戶端軟件(如Fox mail)。
- 郵件服務器的功能是發送和接收郵件,同時還要向發信人報告郵件傳送的情況(已交付、被拒絕、丟失等)。
- 郵件服務器按照客戶服務器方式工作。郵件服務器需要使用發送和讀取兩個不同的協議。
- 一個郵件服務器收信時可作為服務器,發信時可作為客戶。
幾個重要步驟
1.發件人調用 PC 機中的用戶代理撰寫和編輯要發送的郵件。
2.發件人的用戶代理把郵件用 SMTP 協議發給發送方郵件服務器,
3.SMTP 服務器把郵件臨時存放在郵件緩存隊列中,等待發送。
4.發送方郵件服務器通過DNS服務器找到接收方郵件服務器地址后,其 SMTP 客戶與接收方郵件服務器的 SMTP 服務器建立 TCP 連接,然后就把郵件緩存隊列中的郵件依次發送出去。
5.運行在接收方郵件服務器中的SMTP服務器進 程收到郵件后,把郵件放入收件人的用戶郵箱中,等待收件人進行讀取。
6.收件人在打算收信時,就運行 PC 機中的用戶代理,使用 POP3(或 IMAP)協議讀取發送給自己的郵件。
注意:POP3 服務器和 POP3 客戶之間的通信是由 POP3 客戶發起的。
1.3.電子郵件的組成
- 電子郵件由信封(envelope)和內容(content)兩部分組成。
- 在郵件的信封上,最重要的就是收件人的地址。
1.4.電子郵件地址的格式
-
TCP/IP 體系的電子郵件系統規定電子郵件地址的格式如下:
**收件人郵箱名@郵箱所在主機的域名 **
-
符號“@”讀作“at”,表示“在”的意思。例如:電子郵件地址 Tom@qq.com 。"Tom"表示用戶名,在該域名范圍內是唯一的;qq.com"表示郵箱所在的主機的域名,必須是全世界唯一的。
二、郵件傳送協議 SMTP
- SMTP 所規定的就是在兩個相互通信的 SMTP 進程之間應如何交換信息。
- 由於 SMTP 使用客戶服務器方式,因此負責發送郵件的 SMTP 進程就是 SMTP 客戶,而負責接收郵件的 SMTP 進程就是 SMTP 服務器。
- SMTP 規定了 14 條命令和 21 種應答信息。每條命令用 4 個字母組成,而每一種應答信息一般只有一行信息,由一個 3 位數字的代碼開始,后面附上(也可不附上)很簡單的文字說明。
2.1.SMTP 通信的三個階段
-
連接建立:連接是在發送主機的 SMTP 客戶和接收主機的 SMTP 服務器之間建立的。SMTP不使用中間的郵件服務器。
-
郵件傳送
-
連接釋放:郵件發送完畢后,SMTP 應釋放 TCP 連接。
三、郵件讀取協議POP3 和 IMAP
3.1.POP3協議
- 郵局協議 POP 是一個非常簡單、但功能有限的郵件讀取協議,現在使用的是它的第三個版本 POP3。
- POP 也使用客戶服務器的工作方式。
- 在接收郵件的用戶 PC 機中必須運行 POP 客戶程序,而在用戶所連接的 ISP 的郵件服務器中則運行 POP 服務器程序。
3.2.IMAP 協議 (Internet Message Access Protocol)
- IMAP 也是按客戶服務器方式工作,現在較新的是版本 4,即 IMAP4。
- 用戶在自己的 PC 機上就可以操縱 ISP 的郵件服務器的郵箱,就像在本地操縱一樣。
- IMAP 是一個聯機協議。當用戶 PC 機上的 IMAP 客戶程序打開 IMAP 服務器的郵箱時,用戶就可看到郵件的首部。
3.3.IMAP 的特點
- IMAP最大的好處就是用戶可以在不同的地方使用不同的計算機隨時上網閱讀和處理自己的郵件。
- IMAP 還允許收件人只讀取郵件中的某一個部分。例如,收到了一個帶有視像附件(此文件可能很大)的郵件。為了節省時間,可以先下載郵件的正文部分,待以后有時間再讀取或下載這個很長的附件。
- IMAP 的缺點是如果用戶沒有將郵件復制到自己的 PC 機上,則郵件一直是存放在 IMAP 服務器上。因此用戶需要經常與 IMAP 服務器建立連接。
注意
- 不要將郵件讀取協議 POP 或 IMAP 與郵件傳送協議 SMTP 弄混。
- 發信人的用戶代理向源郵件服務器發送郵件,以及源郵件服務器向目的郵件服務器發送郵件,都是使用 SMTP 協議。
- 而 POP 協議或 IMAP 協議則是用戶從目的郵件服務器上讀取郵件所使用的協議。
四、基於萬維網的電子郵件

- 電子郵件從 A 發送到網易郵件服務器是使用 HTTP 協議。
- 兩個郵件服務器之間的傳送使用 SMTP。
- 郵件從新浪郵件服務器傳送到 B 是使用 HTTP 協議。
4.1.通用因特網郵件擴充 MIME
MIME 概述
SMTP 有以下缺點:
- SMTP 不能傳送可執行文件或其他的二進制對象。
- SMTP 限於傳送 7 位的 ASCII 碼。許多其他非英語國家的文字(如中文、俄文,甚至帶重音符號的法文或德文)就無法傳送。
- SMTP 服務器會拒絕超過一定長度的郵件。
- 某些 SMTP 的實現並沒有完全按照[RFC 821]的 SMTP 標准。
MIME 的特點
- MIME 並沒有改動 SMTP 或取代它。
- MIME 的意圖是繼續使用目前的[RFC 822]格式,但增加了郵件主體的結構,並定義了傳送非 ASCII 碼的編碼規則。
**MIME 和 SMTP 的關系 **

**MIME 主要包括三個部分 **
- 5 個新的郵件首部字段,它們可包含在[RFC 822]首部中。這些字段提供了有關郵件主體的信息。
- 定義了許多郵件內容的格式,對多媒體電子郵件的表示方法進行了標准化。
- 定義了傳送編碼,可對任何內容格式進行轉換,而不會被郵件系統改變。
**MIME 增加 5 個新的郵件首部 **
- MIME-Version: 標志 MIME 的版本。現在的版本號是 1.0。若無此行,則為英文文本;
- Content-Description: 這是可讀字符串,說明此郵件是什么。和郵件的主題差不多;
- Content-Id: 郵件的唯一標識符;
- Content-Transfer-Encoding: 在傳送時郵件的主體是如何編碼的;
- Content-Type: 說明郵件的性質;
**MIME的內容傳送編碼 (Content-Transfer-Encoding) **
- 最簡單的編碼就是 7 位 ASCII 碼,而每行不能超過 1000 個字符。MIME 對這種由 ASCII 碼構成的郵件主體不進行任何轉換。
- 另一種編碼稱為 quoted-printable,這種編碼方法適用於當所傳送的數據中只有少量的非 ASCII 碼。
- 對於任意的二進制文件,可用 base64 編碼。
**MIME內容類型 **
- MIME的標准規定 Content-Type 說明必須含有兩個標識符,即內容類型(type)和子類型(subtype),中間用“/”分開。
- MIME 標准定義了 7 個基本內容類型和 15 種子類型。
