Intro#
為給 mix-space 添加回覆郵件訂閱及通知,遂打算自建郵局。
網上搜尋了一圈,iRedMail 功能強大,使用簡單,部署起來也不算複雜,搞!
如果你也想部署,你需要擁有:
- 一台 VPS,最好支持 Reverse DNS。
- 一個域名(當然啦)
本文基於 ubuntu 22.04 lts,使用域名為 xxu.do,你可以參考。
正式安裝#
準備系統及安裝#
- 更新你的軟體包並安裝所需軟體包:
sudo apt update
sudo apt upgrade
sudo apt install wget curl sudo tar socat bind9-utils -y
- 計劃將 mail.xxu.do 作為郵局域名,即設置 VPS 主機名:
vim /etc/hosts
127.0.0.1 mail.xxu.do mail #添加一行,其中 mail.xxu.do 為長主機名,mail 為短主機名
x.x.x.x mail.xxu.do mail #如果這裡有你的公網地址,也可以將後面改為你的主機名,保存後退出
vim /etc/hostname
mail #將裡面的內容更改為 mail,保存後退出
reboot #重啟以生效
hostname #執行結束你應該看到短主機名 mail,如果你看到長主機名則設置有誤
hostname -f #執行結束你應該看到長主機名 mail.xxu.do,如果你看到短主機名則設置有誤
- 下載並安裝 iRedMail
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.8.tar.gz #截止20240401,最新版為 1.6.8
tar -xf iRedMail.tar.gz
cd iRedMail-1.6.8 && bash iRedMail.sh
接下來進入圖形化安裝介面,用 「空格」 來選中,「回車」 來下一步,過程中要停止安裝可按下 「Ctrl+C」。
1. 安裝,回車
2. 安裝目錄,保持默認即可,回車
3. 選擇 web 伺服器,比較熟悉 nginx,選擇 nginx,回車
4. 選擇資料庫,選擇第二項 MariaDB,回車
5. 設置資料庫密碼,請記住
6. 設置域,不可與 hostname 相同,本文為 xxu.do
7. 設置管理員密碼,請記住
8. 接下來一路 y 即可,搭建結束後 `reboot` 重啟系統以生效
配置域名記錄#
- 將郵局域名解析到你的 VPS,然後申請證書並安裝:
curl https://get.acme.sh | sh; apt install socat -y || yum install socat -y; ~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
~/.acme.sh/acme.sh --issue -d mail.xxu.do --standalone -k ec-256 --force --insecure
~/.acme.sh/acme.sh --issue -d mail.xxu.do --webroot /var/www/html
~/.acme.sh/acme.sh --installcert -d mail.xxu.do --key-file /etc/ssl/private/iRedMail.key --fullchain-file /etc/ssl/certs/iRedMail.crt
service postfix reload;service dovecot reload;service nginx reload #重載服務
- 禁用 iRedMail 灰名單(尚不清楚有什麼影響,根據教程照做)
vi /opt/iredapd/settings.py
# 將 ”greylisting” 刪除,注意保持格式一致;或整行刪除用下面這行代替
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]
- 設置 PTR 反向解析:到你的 VPS 管理後台,設置 PTR 記錄為郵局域名,本文為 mail.xxu.do,使用 「
nslookup x.x.x.x(伺服器IP)
」來查詢, - 設置記錄:
vi /root/iRedMail-1.6.8/iRedMail.tips
#找到類似下圖的部分,複製出來,刪掉所有的引號和空格,首位連在一起。
得到形如下面的代碼,填入 dkim._domainkey 的 Content 中:
v=DKIM1;p=MIIBIjANBgkqhkiG9w0BAQEFAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Type | Name | Content |
---|---|---|
MX | xxu.do | mail.xxu.do |
TXT | xxu.do | v=spf1 mx ~all |
TXT | dkim._domainkey | 見上,形如:v=DKIM1;p=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
TXT | _dmarc | v=DMARC1; p=none; pct=100; rua=mailto@xxu.do |
配置 iRedMail#
現在,你即可訪問以下頁面:
https://mail.xxu.do/mail ——郵件登錄地址
https://mail.xxu.do/netdata ——伺服器狀態監控
https://mail.xxu.do/iredadmin ——郵件伺服器後台管理
帳號:postmaster@你的域,本文中為 [email protected]
密碼:安裝時候設置的密碼
以上信息,可以在 /root/iRedMail-1.6.8/iRedMail.tips 文件中查看
若你想要添加用戶,進入郵件伺服器後台管理頁面並登錄,在如圖所在位置添加。
測試郵件伺服器#
mail-tester#
- 訪問 https://www.mail-tester.com,獲得測試郵箱地址
- 使用管理員帳戶即 [email protected] 登錄郵箱,將系統發送的三封郵件任意選擇一封發送給測試郵箱地址。
- 回到 https://www.mail-tester.com,點擊測試。
不出意外得到了 10 分滿分。
Gmail 測試#
嘗試向我的 Gmail 發送了一封郵件,但進入了垃圾郵件,手動將其標記為非垃圾郵件,隨後給他人發郵件則能夠正常接收。
郵件客戶端支持#
協議 | 地址 | 端口 & 加密端口 |
---|---|---|
IAMP | xxu.do | 143,993 |
POP3 | xxu.do | 110,995 |
SMTP | xxu.do | 25 (需要端口開放),587 |
Outro#
在安裝 iRedMail 後,其他服務無法部署了。排查後發現可能是默認安裝了 nftables,vi etc/nftables.conf
修改規則後使用 systemctl restart nftables
重啟服務就好了。
Reference#
此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://xxu.do/posts/geek/iRedMail