Jayden

Jayden

iRedMail 部署

Intro#

為給 mix-space 添加回覆郵件訂閱及通知,遂打算自建郵局。

網上搜尋了一圈,iRedMail 功能強大,使用簡單,部署起來也不算複雜,搞!

如果你也想部署,你需要擁有:

  1. 一台 VPS,最好支持 Reverse DNS。
  2. 一個域名(當然啦)

本文基於 ubuntu 22.04 lts,使用域名為 xxu.do,你可以參考。

正式安裝#

準備系統及安裝#

  1. 更新你的軟體包並安裝所需軟體包:
sudo apt update
sudo apt upgrade
sudo apt install wget curl sudo tar socat bind9-utils -y
  1. 計劃將 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,如果你看到短主機名則設置有誤
  1. 下載並安裝 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` 重啟系統以生效

配置域名記錄#

  1. 將郵局域名解析到你的 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 #重載服務
  1. 禁用 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"]
  1. 設置 PTR 反向解析:到你的 VPS 管理後台,設置 PTR 記錄為郵局域名,本文為 mail.xxu.do,使用 「nslookup x.x.x.x(伺服器IP)」來查詢,
  2. 設置記錄:
vi /root/iRedMail-1.6.8/iRedMail.tips
#找到類似下圖的部分,複製出來,刪掉所有的引號和空格,首位連在一起。

image

得到形如下面的代碼,填入 dkim._domainkey 的 Content 中:

v=DKIM1;p=MIIBIjANBgkqhkiG9w0BAQEFAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
TypeNameContent
MXxxu.domail.xxu.do
TXTxxu.dov=spf1 mx ~all
TXTdkim._domainkey見上,形如:v=DKIM1;p=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
TXT_dmarcv=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#

  1. 訪問 https://www.mail-tester.com,獲得測試郵箱地址
  2. 使用管理員帳戶即 [email protected] 登錄郵箱,將系統發送的三封郵件任意選擇一封發送給測試郵箱地址。
  3. 回到 https://www.mail-tester.com,點擊測試。

不出意外得到了 10 分滿分。

Gmail 測試#

嘗試向我的 Gmail 發送了一封郵件,但進入了垃圾郵件,手動將其標記為非垃圾郵件,隨後給他人發郵件則能夠正常接收。

郵件客戶端支持#

協議地址端口 & 加密端口
IAMPxxu.do143,993
POP3xxu.do110,995
SMTPxxu.do25 (需要端口開放),587

Outro#

在安裝 iRedMail 後,其他服務無法部署了。排查後發現可能是默認安裝了 nftables,vi etc/nftables.conf 修改規則後使用 systemctl restart nftables 重啟服務就好了。

Reference#

  1. 自建企業級郵件伺服器、域名郵箱!iRedMail 企業級郵件系統搭建、配置、優化教程!
  2. 官方文檔
  3. 請教 iredmail 郵局搭建端口問題

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://xxu.do/posts/geek/iRedMail


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。