出於技術上的好(zhuang)奇(bi),我想搭建一個自己的郵箱服務器,這樣的話,以後的個人資料上面可以帶上一個自己域名的郵箱,再也不怕簡歷帶qq郵箱被嫌棄了。
首先是瞭解一下基本的郵件協議:
- POP3:郵局協議第三版本,主要用於從郵件服務器中檢索郵件,並把所有的郵件信息立即下載到用戶的計算機上。
- IMAP:互聯網信息訪問協議,可讓用戶在服務器上創建並管理郵件文件夾或郵箱、刪除郵件、查詢某封信的一部分或全部內容,完成所有這些工作時都不需要把郵件從服務器下載到用戶的個人計算機上。
- SMTP:簡單郵件傳輸協議,它是一組用於從源地址到目的地址傳輸郵件的規範,通過它來控制郵件的中轉方式
簡單來說,POP3和IMAP用來收郵件,SMTP用來發郵件。而需要被安裝用來收件的程序是:Dovecot,用來發件的程序是:Postfix,除此之外我們還需要一個管理郵件的web程序:RoundCube。
再介紹幾個基本的概念:
- MUA:Mail User Agent,郵件用戶代理,就是直接被用戶操作來收發郵件的程序,比如qq郵箱客戶端、Foxmail、Outlook等等
- MTA:Mail Transfer Agent,郵件傳輸代理,就是幫助一封郵件在網絡中傳輸的節點
- MDA:Mail Delivery Agent,郵件投遞代理,郵件經過若干個MTA傳輸後,最終到達MDA,保存在MDA的數據庫中,也就是郵箱
再需要被收件人查閱時,就需要再經過MUA取走。
所以,郵件的傳輸過程就是MUA(SMTP協議) 發送 -》MTA…MAT=>MDA=>(POP3或IMAP協議) 收取 MUA
實踐步驟:
- 首先是開放端口,25,465(SMTP服務,用於發送郵件),110,995(pop3服務,用於接收郵件)143,993(imap服務,用於接收郵件)
- 安裝postfix
- 安裝dovecot
- 配置LNMP環境
- 安裝roundcube
6、開啓tls
每一項的細節,都能夠在網上找到完整的教程,本人覺得並不能寫的比別人好,並且過於繁瑣,所以整理了以下參考博文鏈接:
4、搭建郵箱服務器
在使用roundcube時,很容易遇到一些問題,而且可能是因爲這個web程序是國外的,或者使用上比較小衆,不容易找到解決方案,我把自己遇到的問題以及解決方案分享一下:
-
Plaintext authentication disallowed on non-secure (SSL/TLS) connections
這個報錯是由於未配置tls,但是dovecot、postfix配置了啓用tls,需要將相關配置都註釋掉:
(1). /etc/dovecot/dovecot.conf 註釋掉:disable_plaintext_auth=no ssl=yes
(2). /etc/postfix/main.cf 註釋掉:
smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous
-
SMTP Error: Authentication failure
發送郵件時報錯, 需要在roundcube中加入以下配置:$config['imap_conn_options'] = array( 'ssl' => array( 'verify_peer' => false, 'verfify_peer_name' => false, ), ); $config['smtp_conn_options'] = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, ), );
-
SMTP Error: Connection failed: Failed to connect socket
如果未配置好tls,就直接發郵件的話,可能會報這個錯,只要先配置好tls就好了 -
SMTP server does not support authentication
開啓tls之後,roundcube中的$config[‘smtp_server’]未修改成tls協議,只要在原地址前面加:tls://
即可。
其它可能出現的問題沒有記下來,就不羅列了,建議postfix配置中做好限制策略,以免你的郵件服務器成爲垃圾中轉站或者被非法利用,比如我目前限制爲:只有發送者爲本域纔會投遞,只有接受者爲本域指定賬戶的纔會接受。
如果其中某個流程走不通的話,又很難查到解決方案的話,歡迎給我發郵件:[email protected]。
補充:如果要發送郵件到外域的話,如果你的服務器是雲主機,應該是發送不成功的,因爲默認是不給開啓25端口的,即使你安全組開啓了25端口,即使你設置465端口發送也不行,只有發工單,要求解封25端口,然後做好限制策略保平安,免得因爲轉發垃圾郵件被封。
安裝好的郵件的WEB管理端是這樣的: