歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux服務 >> Linux服務器:郵件系統的原理

Linux服務器:郵件系統的原理

日期:2017/3/2 16:32:23   编辑:Linux服務

究竟什麼是郵件服務器呢?郵件服務器提供了郵件系統的基本結構,包括郵件傳輸、郵件分發、郵件存儲等功能,以確保郵件能夠發送到Internet網絡中的任意地方。目前先進的郵件服務器會包括:短信郵件,防毒反垃圾模塊,地址簿功能,用戶群組功能,代收 POP3等,郵件服務器有兩種不同的應用群體:ISP提供商和企事業單位。電子郵件是Internet應用服務之一。下面詳細講一下郵件系統具體的一些技術要點。

  MUA( 客戶端程序,如 outlook )
  MTA(mail transfer agent, 郵件傳輸代理 )
  MDA(mail delivery agent, 郵件投遞代理 )
  MRA(mail retrieval agent, 郵件獲取代理 )

  真實郵件發送流程模擬

  假設 Alex 使用的信箱是 [email protected],則當 Alex 要寄信給 [email protected] 時,會經過下列步驟:

  · 首先 Alex 從個人計算機中寫好一封信,送到他所屬的 gmail.com 的主機中。

  · gmail.com 會先將信件存在自己的機器上的暫存區。

  · gmail.com 會檢查信件目的地,並查找 yahoo.com 的 IP 地址。

  · 接著經由因特網將信件送到 yahoo.com 的主機。

  · yahoo.com 的主機收到信後,發現是給自己機器中的使用者,所以將信件存放到使用者的新件匣中。

  · 當 John 有空時,從家裡打開計算機,並主動去 yahoo.com 檢查是否有新的信件,當發現有新的信,則下載到自己的計算機中。  

  從寄信到收信的流程中,每一個網絡上的組件都扮演著不同的角色

  · Mail User Agent (MUA):郵件使用者代理人,這是使用者用來寫信、收信的程序。例如,我們常用的 Outlook Exporess、Thunderbird 等。它的作用在於提供使用者一個好用的收發信件接口,並將信傳到自己的郵件服務器。

  · Mail Delivery Agent (MDA):郵件遞送代理人,負責將要給本地使用者的郵件分配到使用者的信箱中。在 UNIX 中,MDA 通常是 mail 這支程序。

  · Mail Transfer Agent (MTA):郵件轉送代理人,是一個負責轉送信件的服務器。UNIX 中使用的 Sendmail、Postfix 就是 MTA 軟件。它的作用在於收到 MTU 寄來的信後,根據信件地址,將信件轉送到目的地。在目的地中,也有另一台 MTA 會負責接收信件。有時候信件並不會一次就從使用者的計算機傳送到目的地的主機,而是會經由許多 MTA 轉送到目的地的主機。這種 MTA 接收非自己的信件,並轉送到別台 MTA 的動作就叫作「Relay」。

  當我們在寄信時,所使用的是 SMTP (Simple Mail Transfer Protocol) 通訊協議,在一台郵件服務器上,必須要先安裝郵件服器軟件,以接收 SMTP 協議所寄來的信件。MTA 和 MTA 之間傳送信件時也是使用 SMTP 協定。而收信時,使用的是 POP3 (Post Office Protocol) 或是 IMAP (Internet Message Access Protocol) 協定。

  什麼是POP

  POP的全稱是 Post Office Protocol,即郵局 協議 ,用於電子郵件的接收,它使用TCP的110端口。現在常用的是第三版 ,所以簡稱為 POP3。POP3仍采用Client/Server工作模式,Client被稱為客戶端,一般我們日常使用電腦都是作為客戶端,而Server(服務器)則是 網管人員進行管理的。舉個形象的例子,Server(服務器)是許多小信箱的集合,就像我們所居住樓房的信箱結構,而客戶端就好比是一個人拿著鑰匙去信箱開鎖取信一樣的道理。

  POP工作原理簡介

  下面就讓我們一起來看看電子郵件軟件收取電子郵件的過程,一般我們在電子郵件軟件的賬號屬性上設置一個 POP服務器的URL(比如pop. 21cn .com),以及郵箱的賬號和密碼。這個在收信過程中都是用得到的。當我們按下電子郵件軟件中的收取鍵後,電子郵件軟件首先會調用DNS協議對POP服務器進行解析IP地址,當IP地址被解析出來後,郵件程序便開始使用TCP協議連接 郵件服務器 的110 端口,因為POP服務器是比較忙的,所以在這個過程中我們相對要等比較長的時間。當郵件程序成功地連上POP服務器後,其先會使用USER命令將郵箱的賬號傳給POP服務器,然後再使用PASS命令將郵箱的賬號傳給服務器,當完成這一認證過程後,郵件程序使用STAT命令請求服務器返回郵箱的統計資料,比如郵件總數和郵件大小等,然後LIST便會列出服務器裡郵件數量。然後郵件程序就會使用RETR命令接收郵件,接收一封後便使用DELE命令將郵件服務器中的郵件置為刪除狀態。當使用QUIT時,郵件服務器便會將置為刪除標志的郵件給刪了。通俗地講,郵件程序從服務器接收郵件,其實就是一個對話過程, POP協議就是用於電子郵件的一門語言。

  命令行pop郵件
  telnet pop. 21cn .com 110
  +OK Hermes POP service () is ready.
  user mr22
  +OK
  pass svtest
  +OK [email protected] has 42 messages (3846240 octets)
  stats
  +OK 42 3846240
  list
  +OK 42 3846240
  1 637170
  2 7047
  3 1444
  4 10938
  5 3573
  R etr 6
SMTP協議原理

  SMTP-簡單郵件傳輸協議(Simple Mail Transfer Protocol),是定義郵件傳輸的協議,它是基於TCP服務的應用層協議 。  
  命令行發郵件
  ehlo xxxx
  250-21cn.com, helo (DELAYED)
  250-EXPN
  250-HELP
  250-8BITMIME
  250-AUTH=LOGIN PLAIN
  250-AUTH LOGIN PLAIN
  250 XTMD
  auth logi12下一頁

Copyright © Linux教程網 All Rights Reserved