好早好早之前計算機網絡老師就教了說,郵件嘛,就三個協議smtp,imap,pop3。 web
smtp 用來發郵件,imap,pop3用來收郵件。噢?是麼。難道沒有發現這句話有很是多的漏洞,根本就不能說清楚這個郵件發送的整個過程。發郵件? 往哪裏發? 收郵件? 往哪裏收。當真的編程的時候就無比蛋疼了。編程
首先總結一句話。完成郵件發送這個整個過程,無論是你發給別人,仍是別人發給你,只是經過了smtp協議。換一句話說就是隻用postfix,你就能夠搭一個郵件服務器。你能夠經過它給你的qq郵箱發送,更能夠經過qq郵件發送給他。服務器
咱們仍是先跟隨一個典型的發送郵件的到接受郵件的過程,看一看smtp ,imap ,pop3以及postfix, dovecot在這個過程當中到底扮演了什麼角色。網絡
從最開始,小明用郵件代理(MUA mail user-agent ),能夠是你foxmail,outlook,或者是你的web-qq-mail,或者是Thunderbird 。 不管是哪一種MUA 郵件建立以後被送到了用戶的郵件傳輸代理服務器(MTA mail transform-agent) ,這個就正是postfix——傳輸的協議使用smtp協議。而後MTA 也就是postFix 檢測你的用戶合法性,以及一系列檢測(包括你發郵件的限制數量,是否含有什麼流氓信息之類的)。等postfix檢測完了以後,它就去找DNS找尋 你的目標。例如:你發送給 11111@qq.com , 此時他就去找DNS問 qq.com的ip是多少(詳細過程更爲複雜一些,例如, qq.com的服務器和 她的郵件服務器頗有可能不在一個網段內部,也就是說qq.com那臺並非mail服務器,可是咱們的mail服務器又很想用qq.com的域名,怎麼搞,總不可能要求別個把mail服務器丟到web服務器的網段嘛。這個時候就能夠設置qq.com的mx記錄,而且設置到目標主機,詳細過程再也不贅述)。而後將這封郵件投遞給qq.com mx 記錄指向的主機的25(默認)端口——此時也是使用smtp協議。固然,考慮到不一樣的網絡配置,可能郵件在傳輸的過程當中頗有可能被轉移到了另外的MTA,可是最終會有一個MTA接管這封郵件,而且負責投遞。而後MTA將郵件轉移給某個MDA(郵件投遞代理) ——她主要的做用是將郵件保存到本地磁盤中,有些MTA也包攬了這個工做——如postfix就是包含MTA,MDA。ssh
Ok這個時候,郵件發送的整個過程已經結束了(服務器層面上的),也就是說如今你能夠給qq.com發,qq.com也能夠給你發了,編程實現的投遞過程也就到此結束。post
你能夠ssh到你的郵件服務器,去看下,/hom/mail/...你的目錄下面你的郵件了,(顯然各個郵件系統的存儲方式不盡相同,這只是舉個例子)計算機網絡
那麼這個時候你nmap一下你的郵件服務器,就會發現多了一個25端口,你能夠經過這個端口指示它向mail.qq.com投遞,同理qq.com 也能夠經過他給你投遞一封郵件。代理
這個時候咱們再來看一看Dovecot尼瑪在這個過程當中到底起到了什麼狗屎做用,我好不容易配了一個Postfix,盡然還要裝個這貨。因此再重複一次,Dovecot並不負責郵件的投遞或者存儲,這兩方面出現了問題,應該考慮你的MTA或者MDA是否正確。orm
Dovecot的主要配置包括,郵件存儲位置,郵件存儲類型,用戶列表和密碼列表,她支持多種用戶密碼格式。你用該選擇一種郵件服務全局均可以接受的用戶名和密碼格式。以便你的postfix和dovecot溝通咯。ip
那麼有了這個狗屎貨以後有什麼用呢,你再nmap 一下你的端口,發現多了110,143端口,她們分別是pop和imap端口,這個時候你就能夠經過你的outlook等等MUA來查收你的郵件咯,固然若是你設置smtp爲本機的話,也就能夠發了。大概這個時候一個很是很是簡單的郵件服務器就搭起來咯。
因此總的來講dovecot沒起到任何做用,pop,imap也沒有起到做用。開玩笑哈~
固然若是想要經過這個郵件服務器去給你的用戶發送郵件,那顯然是不靠譜的,她們妥妥地會出如今你用戶的垃圾郵箱,甚至直接就被別人的MTA攔截住了。