Postfix+Dovecot+MySQL搭建郵件服務器圖文解析

轉自http://www.open-open.com/lib/view/open1431592348122.html


自己覺得人家寫的特別清楚,特別鮮明,特地收藏!!

配置郵件服務器並不是一項簡單的工作,其過程不僅需要一定的技術能力,同時也需要大傢俱有一定的耐心,同時也需要大家非常細心。爲了能夠「看懂」並「最終實踐」這篇文章,大家還需要了解或掌握以下知識:

介紹服務

Postfix: 是一個標準的MTA「Mail Transfer Agent」服務器,它負責通過SMTP協議管理髮送到本機的郵件以及由本機發向外界的郵件。在本例中,Postfix會把郵件的本地投遞工作「接受到郵件之後將郵件存檔到本地磁盤」交給Dovecot的LMTP服務「Local Mail Transfer Protocol service」處理。當然,當大家想通過服務器向外界發送郵件時,Postfix還將負責驗證權限以確保服務器不被濫用。「很多郵件服務器根本沒有對SMTP做用戶驗證,這將導致任何匿名用戶都可以通過服務器向外界發送郵件,從而使得服務器變成垃圾中轉站」

Dovecot: 是一個非常優秀的IMAP/POP服務器用以接收外界發送到本機的郵件。通常,Dovecot的工作內容包括:驗證用戶身份以確保郵件不會被泄露。在本例中,Dovecot將負責所有的「身份驗證」工作,我們會配置Dovecot查詢本地的MySQL數據庫以確認用戶身份

MySQL: 不必多說,它將存儲所有的用戶信息,其中包括:需要監聽的域名信息、用戶郵箱地址、登錄密碼、郵箱別名「alias」等

工作原理


服務器接收郵件的過程

在開始講述本例的內容之前,我們先來看看Postfix+Dovecot+MySQL是如何相互協作以實現郵件服務器的各項功能。我們假設 張三通過oschina.net的郵箱[email protected]發送一份郵件給 李四[email protected],則服務器接收郵件的過程大致如下圖所示:

這裏寫圖片描述

1. [email protected]發送郵件到[email protected]

2. oschina.net服務器會通過DNS查詢mydomain.com的MX記錄並找到Postfix所在的服務器

3. 郵件被髮送給Postfix

4. Postfix轉向MySQL求助,以查詢mydomain.com是不是需要處理的域名

5. MySQL返回確認信息給Postfix

6. Postfix將接受到的郵件投遞給Dovecot的LMTP服務以便做處理

7. Dovecot將郵件內容保存到[email protected]用戶對應的磁盤路徑


用戶查收郵件的過程

上述例子中我們看到了服務器接收郵件的過程,接下來我們看看,當大家通過用戶名密碼登錄郵箱查看郵件時,會發生什麼事情:

這裏寫圖片描述

1.郵件客戶端 to Dovecot:尊敬的Dovecot大人,您好!我闊以建立一個IMAP加密連接嗎?

2.Dovecot to 郵件客戶端:當然闊以。這是我的SSL證書,請您告訴我帳號和密碼!

3.郵件客戶端 to Dovecot:好滴!這是我的用戶名和密碼,千萬不要告訴別人哦!

4.Dovecot to MySQL:Hi 美女!請問下,這個用戶名和密碼是正確的嘛?

5.MySQL to Dovecot:好的,請稍後!呃……這個用戶名和密碼是正確的哦!

6.Dovecot打開存放在本地磁盤/var/mail/mydomain.com/llisi的mailbox

7.Dovecot獲取到最新的郵件及其他相關信息

8.Dovecot將郵件及其相關的其他信息通過IMAP協議發送給客戶端


用戶發送郵件的過程

查收了最新的郵件之後,李四[email protected]發現張三給他發來了郵件。現在,李四回覆一封郵件給張三,會發生什麼事情:

這裏寫圖片描述

1.郵件客戶端 to Postfix:尊敬的Postfix大人,您好!我闊以建立一個安全的SMTP連接嘛?

2.Postfix to 郵件客戶端:說人話!可以就是可以,幹嘛要說「闊以」啊!你丫賤啊,找抽啊!想建立SMTP連接可以,不過要加密。這是我的SSL證書,告訴我你的帳號和密碼,你個賤人!

3.郵件客戶端 to Postfix:對不起,大人,我錯鳥!這是我的帳號和密碼,不要告訴別人哦!

4.Postfix to Dovecot:Hi 帥哥,幫我查一下這個帳號和密碼!

5.Dovecot to MySQL:Hi 美女,這個帳號和密碼是正確的呢?!還是正確的呢?!還是……

6.MySQL to Dovecot:好啦,你乖啦!我查過啦,這個帳號密碼是正確的啦!表賣萌哦,Dovecot君!

7.Dovecot to Postfix:大鍋,則個帳號密碼斯正缺滴!

8.Postfix to 郵件客戶端:賤人,過來!你給的帳號密碼是正確的,允許你發送郵件!

9.郵件客戶端將編寫好的郵件通過SMTP協議發送給Postfix

10.Postfix將收到的郵件轉發給對方

以上,大家已經看到郵件收、發的整個過程

發佈了86 篇原創文章 · 獲贊 102 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章