郵件協議POP3/IMAP/SMTP介紹

一、郵件發送、收取過程

圖示的六個步驟分別進行如下的說明:

  ①、用戶A的電子郵箱爲:[email protected],通過郵件客戶端軟件寫好一封郵件,交到QQ的郵件服務器,這一步使用的協議是SMTP,對應圖示的①;

  ②、QQ郵箱會根據用戶A發送的郵件進行解析,也就是根據收件地址判斷是否是自己管轄的賬戶,如果收件地址也是QQ郵箱,那麼會直接存放到自己的存儲空間。這裏我們假設收件地址不是QQ郵箱,而是163郵箱,那麼QQ郵箱就會將郵件轉發到163郵箱服務器,轉發使用的協議也是SMTP,對應圖示的②;

  ③、163郵箱服務器接收到QQ郵箱轉發過來的郵件,也會判斷收件地址是否是自己,發現是自己的賬戶,那麼就會將QQ郵箱轉發過來的郵件存放到自己的內部存儲空間,對應圖示的③;

  ④、用戶A將郵件發送了之後,就會通知用戶B去指定的郵箱收取郵件。用戶B會通過郵件客戶端軟件先向163郵箱服務器請求,要求收取自己的郵件,對應圖示的④;

  ⑤、163郵箱服務器收到用戶B的請求後,會從自己的存儲空間中取出B未收取的郵件,對應圖示⑤;

  ⑥、163郵箱服務器取出用戶B未收取的郵件後,將郵件發給用戶B,對應圖示的⑥;最後三步用戶B收取郵件的過程,使用的協議是POP3;

  上面的步驟可能大家不太明白,這裏面出現了很多名詞,比如郵件客戶端軟件,郵件服務器,SMTP和POP3協議(郵件傳輸協議)等等。不明白沒關係,接下來我們來詳細介紹這些名詞

1、基本概念:

  • SMTP郵件服務器:用戶替用戶發送郵件和接收外面發送給本地用戶的郵件,對應上圖的第一、二步。它相當於現實生活中郵局的郵件接收部門(可接收普通用戶要投出的郵件和其他郵局投遞進來的郵件)。
  • POP3/IMAP郵件服務器:用戶幫助用戶讀取SMTP郵件服務器接收進來的郵件,對應上圖的第六步。它相當於專門爲前來取包裹的用戶提供服務的部門。

2、協議:

1)三個協議:

  1. SMTP協議:全稱爲 Simple Mail Transfer Protocol,簡單郵件傳輸協議,屬於 TCP/IP 協議簇(默認端口25)。它定義了郵件客戶端軟件和SMTP郵件服務器之間,以及兩臺SMTP郵件服務器之間的通信規則。SMTP是一個“推”的協議,它不允許根據需要從遠程服務器上“拉”來消息。
  2. POP3協議:全稱爲 Post Office Protocol,是TCP/IP協議族中的一員(默認端口是110),它定義了郵件客戶端軟件和POP3郵件服務器的通信規則,主要用於支持使用客戶端遠程管理在服務器上的電子郵件。
  3. IMAP協議:全稱爲 Internet Message Access Protocol,Internet消息訪問協議,是一個應用層協議(端口是143),它是對POP3協議的一種擴展,也是定義了郵件客戶端軟件和IMAP郵件服務器的通信規則,主要用來從本地郵件客戶端(Outlook Express、Foxmail、Mozilla Thunderbird等)訪問遠程服務器上的郵件。

2)POP3和IMAP區別:

IMAP像POP3那樣提供了方便的郵件下載服務,讓用戶能進行離線閱讀。IMAP和POP3是郵件訪問最爲普遍的Internet標準協議。不同的是:

  • IMAP提供Webmail 與電子郵件客戶端之間的雙向通信,客戶端收取的郵件仍然保留在服務器上,同時在客戶端上的操作都會反饋到服務器上(如:刪除郵件,標記已讀等,服務器上的郵件也會做相應的動作。所以無論從瀏覽器登錄郵箱或者客戶端軟件登錄郵箱,看到的郵件以及狀態都是一致的。)。而POP3在客戶端的操作不會反饋到服務器上
  • IMAP更好地支持了從多個不同設備中隨時訪問新郵件。
  • IMAP提供的摘要瀏覽功能可以讓你在閱讀完所有的郵件到達時間、主題、發件人、大小等信息後才作出是否下載的決定。
  • POP3需要下載未閱讀的郵件,IMAP可以不用把所有的郵件全部下載,而是通過客戶端直接對服務器上的郵件進行操作。所有通過IMAP傳輸的數據都會被加密,從而保證通信的安全性。
  • IMAP 整體上爲用戶帶來更爲便捷和可靠的體驗。POP3 更易丟失郵件或多次下載相同的郵件。

3)配置:

根據上面可以知道:IMAP協議是用來接收郵件用的,使用IMAP還可以同步客戶端和服務器之間的操作。SMTP都是用來發送郵件的時候用的,上面也提到,SMTP是一種“推”的協議,不允許從服務器“拿”消息。

4)常用郵箱的首發服務器:

網易郵箱支持POP3/SMTP/IMAP服務,可以通過電腦客戶端軟件更好地收發郵件,網易郵箱已經默認開啓POP3/SMTP/IMAP服務。QQ郵箱和Gmail郵箱內的「POP3/SMTP服務」和「IMAP/SMTP服務」一般都是關閉的,需要您手動開啓。

  • 新浪免費郵箱發信(smtp)服務器的地址爲:smtp.sina.com
  • 新浪免費郵箱收信(pop3)服務器的地址爲:pop.sina.com

SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是爲網絡通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡連接進行加密,客戶與服務器應用之間的通信不被攻擊者竊聽。
如果您的電子郵件客戶端支持SSL,可以在設置中選擇使用SSL。當選擇了使用SSL協議時,需要修改相應的服務器端口號。QQ郵箱使用SSL的通用配置如下:

  • 接收郵件服務器:pop.qq.com,使用SSL,端口號995
  • 發送郵件服務器:smtp.qq.com,使用SSL,端口號465或587

國內外主要郵箱的POP3/SMTP/IMAP的客戶端設置,POP3是指接收郵件的服務器。有的郵件服務是POP3,而有的叫POP。不同郵箱,各自的POP服務器地址也是不同的。

  • QQ郵箱 POP3:pop.qq.com SMTP:smtp.qq.com IMAP:imap.qq.com 端口:143
  • Foxmail POP3:pop.foxmail.com SMTP:smtp.foxmail.com
  • 移動139郵箱 POP3:pop.139.com SMTP:smtp.139.com
  • 天翼189郵箱 POP3:pop.189.cn SMTP:smtp.189.cn
  • 163郵箱 POP3:pop.163.com SMTP:smtp.163.com
  • 163Vip郵箱 POP3:pop.vip.163.com SMTP:smtp.vip.163.com
  • 126郵箱 POP3:pop3.126.com SMTP:smtp.126.com
  • Gmail POP3:pop.gmail.com SMTP:smtp.gmail.com IMAP:imap.gmail.com 端口:995 465 993
  • Yahoo郵箱 POP3:pop.mail.yahoo.com SMTP:smtp.mail.yahoo.com
  • Hotmail POP3:pop3.live.com SMTP:smtp.live.com 端口:995
  • Sogou郵箱 POP3:pop3.mail.sogou.com SMTP:smtp.mail.sogou.com

二、使用Smtp協議手工發送郵件

SMTP協議:全稱爲 Simple Mail Transfer Protocol,簡單郵件傳輸協議。它定義了郵件客戶端軟件和SMTP郵件服務器之間,以及兩臺SMTP郵件服務器之間的通信規則。SMTP協議的通信雙方採用一問一答的命令/響應形式進行對話,SMTP協議分爲標準SMTP協議和擴展SMTP協議,標準SMTP協議是1982年在RFC821 文檔中定義的,而擴展SMTP協議是1995年在RFC1869 文檔中定義的。擴展SMTP協議在標準 SMTP協議基礎上的改動非常小,主要增加了郵件安全方面的認證功能,現在我們說的SMTP協議基本上都是擴展SMTP協議。RFC1869文檔參考如下:https://tools.ietf.org/html/rfc1869

SMTP 協議中一共定義了18條命令,但是發送一封電子郵件的過程通常只需6條命令,語法格式總結如下:

大家可能光看這些命令不太清楚,下面我總結了一下使用Smtp協議手工發送郵件的步驟:

①、和SMTP服務器建立連接,telnet smtp.163.com 25。這條命令是和163郵箱建立連接,如果是和QQ,那麼將163換成qq即可,同理別的郵箱也是一樣。後面的數字25表示SMTP服務器的端口號。
②、ehlo 發件人用戶名。這沒什麼好說的,就是告訴SMTP服務器發送者的用戶名。
③、選擇登錄認證方式,一般我們在第二步執行完後,會提示有幾種認證方式,我們一般選擇的是login。即輸入命令:auth login
④、分別輸入經過Base64加密後的用戶名和密碼。注意必須是要經過 Base64加密後的用戶名和密碼,大家可以網上在線轉,也可以用後面給的代碼進行轉換。
⑤、指明郵件的發送人和收件人
  mail from:<[email protected]>
  rcpt to:<[email protected]>
⑥、輸入data命令,然後編寫要發送的郵件內容,郵件的編寫格式規則如下:
    第一步:輸入data
    第二步:輸入郵件內容 

from:<[email protected]>    ----郵件頭髮件人地址
to:<[email protected]>       ----郵件頭收件人地址
subject:hello world    ----郵件頭主題
               -----空行
This is the first email sent by hand using the SMTP protocol  ----郵件的具體內容

⑦、輸入“.”表示郵件內容輸入完畢
⑧、輸入quit命令斷開與郵件服務器的連接
下面我用動圖的形式給大家展示用Smtp協議手工發送郵件的前面三個步驟:

   上面我執行到第4步,剩下的步驟我就直接截圖了:

三、3、使用POP3協議手工接收郵件

郵件服務商專門爲每個用戶申請的電子郵箱提供了專門的存儲空間,SMTP 服務器將接收到的郵件保存到相應用戶的存儲空間。用戶要從郵件服務提供商提供的電子郵箱中獲取自己的電子郵件,那麼就需要POP3 郵件服務器來完成。

POP3協議:全稱爲 Post Office Protocol,它定義了郵件客戶端程序和POP3郵件服務器的通信規則。相關命令如下:

下面我們演示用POP3協議手工接收郵件:

第一步:用telnet 連接POP3的163郵箱服務器

接下來收取郵件:

參考:https://www.cnblogs.com/ysocean/p/7653252.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章