POP3運作流程:
- 僅負責信件下載功能
- 郵件伺服器啟動後,會傾聽TCP Port 110
- POP3的指令由「指令」與「參數」組成,中間以一個空白隔開。
- 伺服器回傳
+OK
代表成功,-ERR
代表失敗 - 伺服器陸續回傳文字敘述列後,最後以「.」單獨一列當成結尾。
認證階段
郵件伺服器必須支援下其中一種
1. 帳號密碼認證
- 用戶端傳送
USER+帳號
指令 - 伺服器回傳
+OK
表示收到帳號,並要求密碼。 - 用戶端傳送
PASS+密碼
伺服器回傳
+OK
,並告知有多少封信件。
2. Authorization POP認證
3. Authorization認證
處理郵件指令,可以分成以下幾種:
STAT:詢問有幾封信及信件總大小
使用者:STAT
伺服器:+OK 2 230
LIST:回傳每封信的大小
使用者:LIST
伺服器:+OK 2 message
伺服器:1 120 #第一封信佔120bytes
伺服器:2 220 #第二封信佔220bytes
伺服器:. #訊息結束
使用者:LIST 2
伺服器:+OK 2 220
RETR:下載信件
使用者:RETR 1
伺服器:+OK 120 octets
伺服器://////// #信件內容
伺服器:////////
伺服器:.
DELE:刪除信件
使用者:DELE 1
伺服器:+OK message 1 deleted #順利刪除第一封信
使用者:DELE 2
伺服器:-ERR message 2 already deleted #第二封信早被刪除
NOOP:無動作
使用者:NOOP
伺服器:+OK
RSET:重設(將刪除的信件完全)
使用者:RSET
伺服器:+OK maildrop has 2 messages
TOP:顯示某封信件的前幾行資料
使用者:TOP 1 10 #顯示第一封信的前10行
伺服器:+OK
伺服器:///////
伺服器:///////
伺服器:.
使用者:TOP 100 3 #顯示第100封信的前3行
伺服器:-ERR no such message #沒有這封信
IDL:顯示信件識別碼
使用者:UIDL
伺服器:+OK
伺服器:1 jfdsknf;klsdjfj
伺服器:2 ldkjfiojwiorjewfq
伺服器:.
QUIT:更新階段
用戶端送出QUIT
伺服器刪除「標示已刪除」的信件,進行更新
伺服器回傳「再見」訊息結束更新。