Linux中Postfix郵件原理介紹(一)

郵件相關協議html

SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協議, 工做在TCP的25端口。它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。跟名字同樣smtp很是簡單,沒法作到認證,郵件存放等功能。linux

POP3(Post Office Protocol)郵局協議第3版,工做在TCP的110端口。本協議主要用於支持使用客戶端遠程管理在服務器上的電子郵件。POP 協議支持「離線」郵件處理。其具體過程是:郵件發送到服務器上,電子郵件客戶端調用郵件客戶機程序以鏈接服務器,並下載全部未閱讀的電子郵件。這種離線訪問模式是一種存儲轉發服務,將郵件從郵件服務器端送到我的終端機器上,通常是PC機或 MAC。一旦郵件發送到 PC 機或MAC上,郵件服務器上的郵件將會被刪除。但目前的POP3郵件服務器大均可以「只下載郵件,服務器端並不刪除」,也就是改進的POP3協議。web

IMAP4(Internet Mail Access Protocol)因特網郵件訪問協議第4版,工做在TCP的143端口。IMAP4協議與POP3協議同樣也是規定我的計算機如何訪問網上的郵件的服務器進行收發郵件的協議,可是IMAP4協議同POP3協議相比更高級。IMAP4支持協議客戶機在線或者離開訪問並閱讀服務器上的郵件,還能交互式的操做服務器上的郵件。IMAP4協議更人性化的地方是不須要像POP3協議那樣把郵件下載到本地,用戶能夠經過客戶端直接對服務器上的郵件進行操做(這裏的操做是指:在線閱讀郵件 在線查看郵件主題 大小 發件地址等信息)。用戶還能夠在服務器上維護本身郵件目錄(維護是指移動)新建 刪除重命名共享 抓取文本 等操做)。IMAP4協議彌補了POP3協議的不少缺陷。小程序

郵件相關名詞安全

通常狀況下,咱們把電子郵件程序分解成傳輸代理,投遞代理用戶代理。用戶代理用來接受用戶的指令,將用戶的信件傳送至信件傳輸代理.而投遞代理則從信件傳輸代理取得信件傳送至最終用戶的郵箱.當用戶試圖發送一封電子郵件的時候,他並不能直接將信件發送到對方的機器上,用戶代理必須試圖去尋找一個信件傳輸代理,把郵件提交給它。信件傳輸代理獲得了郵件後,首先將它保存在自身的緩衝隊列中,而後,根據郵件的目標地址,信件傳輸代理程序將找到應該對這個目標地址負責的郵件傳輸代理服務器, 而且經過網絡將郵件傳送給它。對方的服務器接收到郵件以後,將其緩衝存儲在本地,直到電子郵件的接收者查看本身的電子信箱。服務器

MTA(Mail Transfer Agent)網絡

郵件傳輸代理工具,經過SMTP協議所指定的服務器,就能夠把E-mail寄到收信人的服務器上了,整個過程只要幾分鐘。SMTP服務器則是遵循SMTP協議的發送郵件服務器,用來發送或中轉發出的電子郵件。經常使用的MTA有:框架

SendMail:郵件的鼻祖。

Qmail:一個數學家開發,做爲Linux下面主流的郵件系統內核,大量著名的商業郵件系統都是在Qmail內核下開發,好比Hotmail。

Postfix:IBM安全專家開發,模塊化設計,而且比sendmail兼容效率更高。

Exim:是基於GPL協議的開放源代碼軟件,由英國劍橋大學的Philip Hazel開發。

Exchange:微軟公司的一套電子郵件服務組件,是個消息與協做系統。

MDA(Mail Delivery Agent)模塊化

郵件投遞代理,投遞代理則從信件傳輸代理取得信件傳送至最終用戶的郵箱。經常使用的MDA有:工具

ProcMail:Postfix默認的郵件投遞工具。

MailDrop:相對比較專業的投遞代理工具。

MRA(Mail Retrieval Agent)

郵件取回代理,使用POP3或IMAP4協議工做。通常用於從用戶信箱取回郵件到郵件用戶代理客戶端。經常使用的MRA有:

Dovecot:是一個開源的支持IMAP和POP3協議的收郵件服務器(自帶SASL功能)。

MUA(Mail User Agent)

郵件用戶代理工具。經常使用的MUA有:

OE:Windows舊版本自帶的工具。

Outlook:Office套件帶的工具。

FoxMail:騰訊公司的郵件客戶端工具。

Thunderbird:雷鳥是Linux下的客戶端工具。

Mutt:Linux下的字符界面客戶端工具。

WebMail

基於Web的電子郵件收發系統,扮演郵件用戶代理角色,通常而言,WebMail系統提供郵件收發、用戶在線服務和系統服務管理等功能。WebMail的界面直觀、友好,不須要藉助客戶端,免除了用戶對E-mail客戶軟件(如:Foxmail、Outlook等)進行配置時的麻煩,只要能上網就能使用WebMail,方便用戶對郵件進行接收和發送。WebMail使得E-mail在Internet上的應用普遍。經常使用的Webmail有:

Openwebmail:臺灣開發的。

Squirrelmail:Centos系統自帶。

Extmail,Extman:國內開發的也被稱爲EMOS系統。

Mail Relay

郵件中繼,先要明白一個概念,一封郵件只要不是發送給本域內用戶的,好比從當前域發送到另外一個域,或從當前域發送到另外一個域而後轉到另一個域的,這就屬於中繼。可是通常郵件服務器都會容許本地或本域內的用戶進行中繼。否則就只能在本域內發送郵件而不能給外部郵箱發送郵件。Postfix默認只能基於IP地址作中繼認證。

SASL(simple authentication secure layer)

簡單認證安全層,是一種用來擴充C/S模式驗證能力的機制。在Postfix能夠利用SASL來判斷用戶是否有權使用轉發服務,或是辨認誰在使用你的服務器。

經常使用的Sasl有

cyrus-sasl:Redhat系列自帶的SASL認證框架。

dovecot-sasl:dovecot組件帶的SASL認證框架。

courier-authlib:這是一個帶有MTA,MDA以及SASL認證的軟件,可是通常只是用它的SASL功能。

Postfix介紹

Postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。是爲了改良sendmail郵件服務器而產生的。其特色:

1. postfix是免費的:postfix想要做用的範圍是廣大的Internet用戶,試圖影響大多數的Internet上的電子郵件系統,所以它是免費的。

2. 更快:postfix在性能上大約比sendmail快三倍。一部運行postfix的臺式PC天天能夠收發上百萬封郵件。

3. 兼容性好:postfix是sendmail兼容的,從而使sendmail用戶能夠很方便地遷移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。

4. 更健壯:postfix被設計成在重負荷之下仍然能夠正常工做。當系統運行超出了可用的內存或磁盤空間時,postfix會自動減小運行進程的數目。當處理的郵件數目增加時,postfix運行的進程不會跟着增長。

5. 更靈活:postfix是由超過一打的小程序組成的,每一個程序完成特定的功能。你能夠經過配置文件設置每一個程序的運行參數。

6. 安全性:postfix具備多層防護結構,能夠有效地抵禦惡意入侵者。如大多數的postfix程序能夠運行在較低的權限之下,不能夠經過網絡訪問安全性相關的本地投遞程序等等。

Postfix服務器工做原理

Linux中Postfix郵件原理介紹(一)Linux中Postfix郵件原理介紹(一)

郵件服務器工做在兩種狀況下:一種是相同域內轉發;二是不一樣域內轉發。因此MTA(postfix)內部通常都會有服務端(smtpd)、客戶端(smtp)和MDA。smtpd郵件服務器很是簡單,只負責轉發郵件別的什麼功能也沒有而且發送方不論是什麼地址均可以從smtpd服務器轉發到目標地址。

郵件服務器兩種工做機制

相同域內轉發:用戶A經過工具鏈接到SMTPD服務端,而後發送一份郵件,而目標收件人是B用戶。當SMPTD收到郵件後判斷髮現是同域內的用戶,就會直接啓動MDA進程把郵件投進用戶郵箱中,當用戶經過MUA工具(如mail命令)就能夠直接收到郵件。

不一樣域內轉發:用戶A經過工具鏈接到SMTPD服務端,而後發送一份郵件,而目標收件人是C用戶。當SMPTD收到郵件後判斷髮現是不一樣域內用戶,就會啓動SMTP客戶端來轉發此郵件。SMTP收到請求後就會解析對方MX記錄,而後鏈接對方SMTPD服務器並把郵件發送過去。當對方SMTPD發現此郵件就是本域內的郵件後也會調用MDA進程把郵件投遞進用戶郵箱中,當用戶經過MUA工具(如mail命令)就能夠直接收到郵件。

原文來自: https://www.linuxprobe.com/linux-postfix-1.html

相關文章
相關標籤/搜索