You are on page 1of 64

電子郵件

1
電子郵 件
 根據 IDC (International Data Corp.) 最近
的調查報告指出 , 預計到 2005 年時 ,
全球平均一天發出的電子郵件數量將高
達 360 億封 , 而且網頁化郵件
(WebMail) 的使用率也將大幅提升。
 電子郵件 (Electronic Mail, E-mail) 隨著
網際網路的大眾化 , SMTP 和 POP3 協
定已 成為目前電子郵件系統的共用標準

2
電子郵件的應用與統一標準
 早在網際網路尚未出現時 , 電子郵件
(E-mail, Electronic Mail) 便已風靡於各
種網路系統。但是當時缺乏統一的標準
, 因此各系統有不同的操作與運作方式

 由於網際網路的普及 , 大家逐漸接受以
SMTP 通訊協定和 POP3 通訊協定 , 擔
任傳送與接收信件的標準。
3
電子郵 件的 安全 問題
1. 傳送的安全性:大家都知道網路駭客的
厲害 , 甚至可以說 , 只要他們有心 , 幾
乎可以侵入任一部郵件伺服器 , 因此信
件傳送的安全性一直是令人困擾的問題

2. 來源的可信度:在網路上 , 要偽裝成另
一名使用者發送信件非常簡單 , 但又很
難追查 , 因此要如何確認信件來源 , 將
是未來電子郵件發展的方向之一。
4
SMTP 協定

5
SMTP 協定
 UA (User Agent, 使用者代理程式 ) 用於
閱讀與編輯郵件;而 MTA (Mail
Transfer Agent, 郵件傳送代理程式 ) 則
用於傳送 (Send) 、接收 (Receive) 與轉
送 (Relay, 又稱 Forward) 郵件。

6
SMTP 協定
 但是 MTA 之間轉送電子郵件的方式 ,
在早期並無一致的標準。導致某些電子
郵件彼此不能交換郵件 , 直到 SMTP
(Simple Mail Transfer Protocol) 被公認為
標準之後才解決了這個問題。
 SMTP 規範了指令與封包格式 , 無論使
用何種硬體和作業系統作為 MTA, 只要
遵循 SMTP 的規定 , 彼此就能轉送郵件

7
SMTP 實際應用 的問 題
 讀取 SMTP 伺服器上的郵件 , 兩者必須
維持連線。在尚無寬頻技術的年代 , 若
在連線狀態下逐一寫信、讀信、回信 ,
勢必花費不少的銀子。
 在 SMTP 伺服器所看到的信件 , 都只是
存在 SMTP 伺服器。倘若要將郵件儲存
到自己的電腦 , 還得使用其它檔案傳輸
協定 ( 例如: FTP 、 Zmodem 等等 )
下載郵件 , 這意味著使用者必須多記一
些指令或學習操作另一套軟體。
8
SMTP 運作原理
 為了能適用於各種網路系統 , 因此
SMTP(Simple Mail Transfer Prortocol)
的運作原理很簡單。

9
SMTP 的架構與 指令
 兩台電腦之間要交換信件 , 就得透過雙
方的 MTA 進行溝通 , 溝通時所用的語
言便是 SMTP 協定。
 在 SMTP 協定下交談 , 雙方都得使用
ASCII 字元集來傳送訊息。

10
電子郵 件的 架構
 信封 (Envelope)
 表頭 (Header)
 本文 (Body)

11
Envelope ( 信封 )
 要傳送電子郵件, 應標註收信人與寄信
人的電子郵件位址 ( 如同真實信封 ) 。
 電子郵件地址的格式 :
– 使用者大名 < 使用者名稱 @ 主機名稱 >
– 『使用者大名』可省略

12
表頭 (Header)
, 會
 將電子郵件傳送給收信伺服器之前
在信件的表頭填入一些重要的資訊:

13
本文 (Body)
 放置信件內容的主要區域。
 表頭部分與本文部分以一個空白列隔開。
本文部分則以一個僅含『 . 』的單獨列做
結尾。

14
SMTP 運作架構
 郵件伺服器啟動後會傾聽 TCP Port 25
 建立連線後 , 郵件伺服器便會回覆
『 220 』訊息:

 由發信端開始傳送指令與資料過來 , 收
信端伺服器一一回應。
– 所用的 SMTP 指令分為『必要的郵件指
令』與『選擇性的郵件指令』。

15
必要的 郵件 指令
 HELO
 MAIL
 RCPT
 DATA
 RSET
 NOOP
 QUIT
所有 SMTP 伺服器都得支援這 7 個指

16
HELO (Hello, 哈囉 )
 TCP
連線建立後 , 發信端會送出的第 1
個指令。

 伺服器發現它所反查到的主機名稱與
HELO 指令所附的不符時:

17
MAIL ( 寄件者 )
 發信端以 MAIL 指令起頭 , 附帶寄件人
的電子郵件地址。
 伺服器認可寄件人電子郵件位址後 , 會
回覆 250 訊息:

18
RCPT (Recipient, 收件者 ) -1
RCPT 指令起頭 , 附帶收件人
 發信端以
的電子郵件地址傳送過去。

 若郵件伺服器不接受此電子郵件地址:

19
RCPT (Recipient, 收件者 ) -2
 設定將寄給 fong@w3.to 的信件轉到
startrek@gcn.net.tw :

 若這台郵件伺服器不願意轉信:

20
DATA ( 信件內容 )
 發信端透過DATA 指令通知伺服器:
『信件內容 ( 包括表頭與本文 ) 要傳過
來了!』:

 發信端收到 354 訊息後 , 便可開始傳送
信件內容。

21
QUIT ( 結束 )
 發信端想結束連線時 , 便可送出 QUIT
指令:

 發信端還沒收到伺服器的回覆訊息前 ,
不可逕自關閉連線。

22
NOOP (No Operation, 無動作 )
 是一個沒有任何作用的指令。
 伺服器收到這個指令後 , 必須回覆 250
訊息。

23
RSET (Reset, 重新 設定 )
 發信端想要取消目前的信件傳輸工作時 ,
隨時都可以發送 RSET 指令。
 伺服器收到指令後 , 會『清掉』之前所
記錄的寄件人 / 收件人電子郵件地址、信
件內容 , 並回覆 250 訊息。

24
選擇性 郵件 指令
SEND
SOML
SAML
VRFY
EXPN
HELP
TURN
郵件伺服器不一定支援這些選擇性郵件指令
( 遇到不認得的指令 , 就會回覆 500 訊息 ) 。

25
SEND 、 SOML 與 SAML
 SEND 指令
– 將信件內容傳送到收信端螢幕上
 SOML (Send Or Mail, 傳送或郵遞 ) 指

– 將信件內容傳送到收信端的信箱或螢幕上
 SAML (Send And Mail, 傳送並郵遞 )
– 將信件內容傳送到收信端的信箱和螢幕上

26
HELP ( 求助頁 )
 要求伺服器傳回有用的求助訊息。
 例如送出『HELP MAIL 』 指令 , 郵件
伺服器便會傳回有關『 MAIL 』 指令的
解說資料。

27
VRFY (Verify, 檢驗 )
 發信端想確認伺服器上是否真有某個帳
號時:

 收信端伺服器上若沒有這個帳號:

28
EXPN (Expand, 展開 )
 若發信端想知道某個郵遞清單的內容:

( Mailing List ) 就是許多
 『郵遞清單』
電子郵件地址的集合。

29
TURN ( 換手 )
 發信端與收信端互換角色 ( 換另一方傳
送信件過來 ) 。
 雙方都有信件要傳送給對方時 , 可用此
指令來雙向傳輸信件。

30
回覆訊 息
 SMTP
協定採用交談式『命令─回覆』
機制來進行溝通。
 連線一端送出指令 , 另一端收到指令加
以處理後 , 回覆適當的訊息。
 指令列的格式:

31
單列回 應訊 息格 式

 『回應碼』是一個三位數的數字 , 是設
計給程式處理的。
 『文字敘述』是一段解說文字 , 大多是
設計給『人』看的。

32
多列回 應訊 息格 式
 各列格式:
 最後一列:

33
SMTP 協定的回 應碼 (1)

34
SMTP 協定的回 應碼 (2)

35
SMTP 的轉送功 能

 信件一律都傳送給某台郵件伺服器 , 再由這
台伺服器將信件轉送到目的地。如此 , 個人
電腦就不用全天開機等著收發信件 ,
36
ESMTP (Extended SMTP) 協定
 SMTP 協定的延伸標準:

37
POP 的功用
( Post Office Protocol )
 多數情形下 , 寄電子郵件時使用 SMTP 協定
;收電子郵件時使用 POP 3 協定。

38
POP3 協定
 為了解決上述擾人的問題 , 因此發展出
了 POP (Post Office Protocol) 協定 , 目前
最普及的 POP 協定為第 3 版 (Version
3), 所以大家通稱為 POP3 。
 由於 POP3 協定的架構簡潔且易於實作
, 迅速成為業界標準。目前幾乎所有的郵
件伺服程式 , 都同時支援 SMTP 和
POP3 兩種協定。

39
POP3 協定
 POP3
協定的用途比較單純 , 就是純粹用
來接收信件 , 不能用於傳送或轉送信件。
當 POP3 用戶端連接到 POP3 伺服器時
, 送出用戶的帳號和密碼 , 便會將該用戶
的信件全部下載到本機電腦 , 然後就可
以中斷連線 , 在自己的電腦上悠哉地看
信。這樣一方面能節省連線費用;另一
方面因為信件已經儲存在自己的電腦 ,
要備份或列印都方便多了。
40
POP3 協定
以 Outlook Express 為例 , 寄信時使用
SMTP 協定將信件送給郵件伺服器 , 收
信時則用 POP3 協定下載郵件 , 所以必
須設定 SMTP 伺服器和 POP3 伺服器
的 FQDN 或 IP 位址。
 大多數的郵件伺服器都支援這兩種協定 ,
所以兩個設定值通常都是指到同一部電
腦。
 POP3 TCP port number : 110
41
POP3 協定

42
POP3 的運作原理

43
P
O
P
3




段 44
認證階 段
 使用者必須通過身分認證程序。
 郵件伺服器起碼得支援其中一種:

– 『 USER 』搭配『 PASS 』認證
– 『 APOP 』 (Authorization POP) 認證
– 『 AUTH 』 (Authorization) 認證

45
USER 搭配 PASS 認證 (1)
 郵件軟體用 USER 指令送出者帳戶名稱
, 再以 PASS 指令送出帳戶密碼:

46
USER 搭配 PASS 認證 (2)
 伺服器回報『 -ERR 』訊息的情形:

47
APOP 認證
 每次連上 POP3 伺服器 , 都會取得不同
的時間標記。
 郵件軟體將時間標記與帳戶密碼以 MD5
(Message Digest 5) 編碼演算法處理 , 產
生編碼字串 , 不需直接傳送密碼:

48
AUTH 認證
 保留日後擴充『認證機制』與『信件完
整性與私密性的保護機制』的彈性空間

49
處理階 段
 此階段下, 使用者可發出郵件處理指令 ,
要求郵件伺服器進行信件下載等工作。
 郵件處理指令有:
– STAT 、 LIST 、 RETR 、 DELE 、 NOOP
、 RSET 、 TOP 、 UIDL

50
STAT (State, 狀態 )
 詢問郵件伺服器:信箱內共有幾封信、
共佔多少儲存空間。
 所回應的訊息格式為:

 如:

51
LIST ( 列示 )
 傳回每封信件的長度。

52
RETR (Retrieve, 下載信 件 )
 下載指定的信件內容。
 RETR 信件編號:

53
DELE (Delete, 刪除 )
 將指定的信件標示成『刪除』。
 DELE 信件編號

54
NOOP (No Operation, 無動作 )
 是一個不附任何參數 , 也沒有任何作用
的指令。

55
RSET (Reset, 重設 )
 將所有標示為『刪除』的信件 , 全部還
原成尚未標示成刪除的狀態。

56
TOP ( 最頂端 的資 料 )
 尋找指定的信件 , 並傳回該信件最前面
數列的內容。
 TOP 信件編號 列數:

57
UIDL
(Unique-ID Listing, 識別碼列示 )
 將指定信件的識別碼列出來。
 UIDL [ 信件編號 ] :

58
更新階 段
 完成所有信件下載工作後 , 郵件軟體便
可送出 QUIT 指令 , 進入更新階段。
 郵件伺服器會刪除掉『已標示刪除』的
信件 , 傳回『再見』訊息 , 結束『更新
』階段。

59
下載郵 件實 例 (1)

60
下載郵 件實 例 (2)

61
POP3 伺服器 的其它功能 -
暫存郵 件
以 RETR 指令下載一封信件後 , 不再
以 DELE 指令將該信件標示成刪除 ,
而讓信件保留在伺服器上。
 為防止郵件信箱空間不夠用 , 大多數的
郵件伺服器都會設定信箱容量的上限值
、 或定期刪除信件的機制。

62
POP3 伺服器 的其它功能 -
限制服 務對象
 發信伺服器會依據使用者電腦的 IP 位
址或發信人的電子郵件地址 , 決定是否
要轉送信件。
 例如 ISP 機房裡的伺服器 , 服務對象
通常只限於它的用戶。
( 以上是指支援 SMTP 的 POP3 伺服
器 )

63
電子郵 件小 結
 電子郵件高即時性、低成本的特性 , 讓
使用電子郵件的人口逐日遞增 , 而郵件
伺服器的任務也越加吃重 , 成為網際網
路裡不可或缺的主角。
 使用者要發送電子郵件時 , 只要透過
SMTP 直接將郵件丟給伺服器 , 而收件
者再透過 POP3 將郵件下載回自己的電
腦即可 , 快速又方便 , 再加上現在的電
子郵件可以夾帶各式檔案 , 方便性更加
顯著。 64