溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中Postfix郵件原理分析

發(fā)布時間:2022-02-18 10:32:29 來源:億速云 閱讀:164 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關Linux中Postfix郵件原理分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

郵件相關協(xié)議

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

POP3(Post Office Protocol)郵局協(xié)議第3版,工作在TCP的110端口。本協(xié)議主要用于支持使用客戶端遠程管理在服務器上的電子郵件。POP 協(xié)議支持“離線”郵件處理。其具體過程是:郵件發(fā)送到服務器上,電子郵件客戶端調用郵件客戶機程序以連接服務器,并下載所有未閱讀的電子郵件。這種離線訪問模式是一種存儲轉發(fā)服務,將郵件從郵件服務器端送到個人終端機器上,一般是PC機或 MAC。一旦郵件發(fā)送到 PC 機或MAC上,郵件服務器上的郵件將會被刪除。但目前的POP3郵件服務器大都可以“只下載郵件,服務器端并不刪除”,也就是改進的POP3協(xié)議。

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

Linux中Postfix郵件原理分析

郵件相關名詞

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

MTA(Mail Transfer Agent)

郵件傳輸代理工具,通過SMTP協(xié)議所指定的服務器,就可以把E-mail寄到收信人的服務器上了,整個過程只要幾分鐘。SMTP服務器則是遵循SMTP協(xié)議的發(fā)送郵件服務器,用來發(fā)送或中轉發(fā)出的電子郵件。常用的MTA有:

SendMail:郵件的鼻祖。

Qmail:一個數學家開發(fā),作為Linux下面主流的郵件系統(tǒng)內核,大量著名的商業(yè)郵件系統(tǒng)都是在Qmail內核下開發(fā),比如Hotmail。

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

Exim:是基于GPL協(xié)議的開放源代碼軟件,由英國劍橋大學的Philip Hazel開發(fā)。

Exchange:微軟公司的一套電子郵件服務組件,是個消息與協(xié)作系統(tǒng)。

MDA(Mail Delivery Agent)

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

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

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

MRA(Mail Retrieval Agent)

郵件取回代理,使用POP3或IMAP4協(xié)議工作。一般用于從用戶信箱取回郵件到郵件用戶代理客戶端。常用的MRA有:

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

MUA(Mail User Agent)

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

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

Outlook:Office套件帶的工具。

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

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

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

WebMail

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

Openwebmail:臺灣開發(fā)的。

Squirrelmail:Centos系統(tǒng)自帶。

Extmail,Extman:國內開發(fā)的也被稱為EMOS系統(tǒng)。

Mail Relay

郵件中繼,先要明白一個概念,一封郵件只要不是發(fā)送給本域內用戶的,比如從當前域發(fā)送到另一個域,或從當前域發(fā)送到另一個域然后轉到另外一個域的,這就屬于中繼。但是一般郵件服務器都會允許本地或本域內的用戶進行中繼。不然就只能在本域內發(fā)送郵件而不能給外部郵箱發(fā)送郵件。Postfix默認只能基于IP地址做中繼認證。

SASL(simple authentication secure layer)

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

常用的Sasl有

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

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

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

Postfix介紹

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

1. postfix是免費的:postfix想要作用的范圍是廣大的Internet用戶,試圖影響大多數的Internet上的電子郵件系統(tǒng),因此它是免費的。

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

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

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

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

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

Postfix服務器工作原理

Linux中Postfix郵件原理分析

郵件服務器工作在兩種情況下:一種是相同域內轉發(fā);二是不同域內轉發(fā)。所以MTA(postfix)內部一般都會有服務端(smtpd)、客戶端(smtp)和MDA。smtpd郵件服務器非常簡單,只負責轉發(fā)郵件別的什么功能也沒有并且發(fā)送方不管是什么地址都可以從smtpd服務器轉發(fā)到目標地址。

郵件服務器兩種工作機制

相同域內轉發(fā):用戶A通過工具連接到SMTPD服務端,然后發(fā)送一份郵件,而目標收件人是B用戶。當SMPTD收到郵件后判斷發(fā)現(xiàn)是同域內的用戶,就會直接啟動MDA進程把郵件投進用戶郵箱中,當用戶通過MUA工具(如mail命令)就可以直接收到郵件。

不同域內轉發(fā):用戶A通過工具連接到SMTPD服務端,然后發(fā)送一份郵件,而目標收件人是C用戶。當SMPTD收到郵件后判斷發(fā)現(xiàn)是不同域內用戶,就會啟動SMTP客戶端來轉發(fā)此郵件。SMTP收到請求后就會解析對方MX記錄,然后連接對方SMTPD服務器并把郵件發(fā)送過去。當對方SMTPD發(fā)現(xiàn)此郵件就是本域內的郵件后也會調用MDA進程把郵件投遞進用戶郵箱中,當用戶通過MUA工具(如mail命令)就可以直接收到郵件。

關于“Linux中Postfix郵件原理分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI