怎樣接收電子郵件(POP3協議簡介)

2021-08-29 08:57:12 字數 1730 閱讀 3925

在internet,pop3(postofficeprotocol3)協議通常被用來接收電子郵件。這個協議很容易學,因為它只包含12個命令(其中有3個你完全可以忽略它們的存在)。這些命令被客戶端計算機用來傳送給遠端伺服器。反過來,伺服器返回給客戶端計算機兩個回應**。如果你還沒有看本站另一篇文章-「winsockterminal示例程式」的話,請先閱讀那篇文章,因為你需要那個程式來做實驗。

mail.comset.net

+okpop3mail.comset.netv5.49serverready

這個字串告訴你連機成功了。不同伺服器的回應會有所不同,但開頭部分都是一樣的,那就是:

"+ok"。它的意思是伺服器接受客戶端計算機所使用的命令順序及語法。如果開頭是"-err",則表示你使用了錯誤的命令。在你的應用程式中,只須處理來自伺服器的回應的前面幾個字元。這麼小的處理量正是pop3相對其它協議的優勢所在。

授權狀態

好了,現在我們已經建立了同伺服器的連線並且從伺服器那裡得到了肯定的回答。接下來要做的就是告訴伺服器你的身份。伺服器要管理成千上萬個郵箱並不是件好難的事。它已為每個郵箱建立好了乙個帳戶。每個帳戶由使用者名稱和密碼構成。當你連上伺服器後,要傳送的第乙個命令就是user,使用者名稱是該命令的引數。具體寫法如下:

userusername

如果使用者名稱已註冊,伺服器將返回一條正確的訊息,然後你就可以輸入下面的命令,告訴伺服器你的密碼。

passpassword

如果使用者名稱和密碼吻合的話,伺服器同樣會返回一條正確的訊息,告訴你可以進入下一階段,即transactionstate.

transaction狀態

為了知道你的郵箱中目前有多少封郵件以及這些郵件的大小,可使用stat命令。它會告訴你郵箱目前的狀態。伺服器所返回的資訊可能會是下面的樣子:

+ok00(你的郵箱中沒有郵件)

+ok3825(你的郵箱中有三封郵件,大小為825個八位位元組)

retr1

要想取回其它的郵件,用上面的命令加上相應的郵件編號就行了。如果你輸入的郵件編號超過了信箱中的郵件數量,伺服器就會返回乙個"-err"給你。作為對retr命令的回應,伺服器會返回給你乙個字串。這個字串包含下面這些東西:"+ok"、郵件大小、郵件文字以及乙個包含小數點的字串。最後乙個字串,也就是小數點表示訊息的結束。例如:

client:retr2

server:+ok234octets

server:《郵件文字》

server:.

除了上面所說的命令之外,當你還處在transaction狀態時,pop3還支援另外兩個命令。這兩個命令是:list和noop。list命令可用來列出郵件的資訊。就象下面所顯示的一樣:

client:list

server:+ok2messages(320octets)

server:1120

server:2200

server:.

通過對list命令提供郵件索引號,可列出特定郵件的資訊,如下例:

client:list2

server:+ok2200

noop命令具體的事情不做,只是用來檢查同伺服器的連線。

update狀態

當你處於update狀態時,你只有乙個命令可用,那就是:quit。用這個命令來確認你所做的所有改變,刪除被標上刪除標記的郵件以及關閉連線。

其它pop3命令

topmsgn

msg-郵件的索引號

n-你想要顯示的行數

深入了解郵件接收協議POP3

什麼是pop 大家一聽這個pop,讀起來有點像是中文中的泡泡,其實這是乙個英文術語的縮寫。pop的全稱是 post office protocol,即郵局協議,用於電子郵件的接收,它使用tcp的110埠。現在常用的是第三版 所以簡稱為 pop3。pop3仍採用client server工作模式,cl...

協議 POP3簡單郵件傳輸協議

post office protocol version 3 郵局協議版本3 rfc1939 user username 認可 pass password 認可 執行成功則狀態轉換 apop name,digest 認可 一種安全傳輸口令的辦法,執行成功導 致狀態轉換,請參見rfc 1321 sta...

基於POP3協議收取郵件

收取郵件就是編寫乙個mua作為客戶端,從mda把郵件獲取到使用者的電腦或者手機上。收取郵件最常用的協議是pop協議,目前版本號是3,俗稱pop3。python內建乙個poplib模組,實現了pop3協議,可以直接用來收郵件。注意到pop3協議收取的不是乙個已經可以閱讀的郵件本身,而是郵件的原始文字,...