【Mail Server 系列文:第 1 篇】
在大多數企業環境中,一套可靠、安全、可維運的郵件系統,是資訊基礎架構中最重要的核心服務之一。
本系列文章將帶你從零開始,建構一套 完整的 Mail Server 生態系統:
從郵件收發、內容過濾、防毒防垃圾信、使用者管理,到封存與全文檢索、Webmail 介面…
全部使用可控、透明、可維護的 Docker-based 微服務架構。
🎯 系列目標
本系列將介紹如何建構一套具有以下特性的郵件系統:
✔ 支援多網域、虛擬使用者(MySQL)
✔ Postfix + Dovecot —— 穩定又功能完整的核心
✔ Amavis / ClamAV / SpamAssassin —— 垃圾信、病毒防護
✔ Sieve + IMAPSieve —— 使用者層級的自動化信件規則
✔ Quota + 使用者配額警告
✔ Bayes + TxRep + Remote spam/ham learning
✔ Piler 郵件封存 + Manticore 中文全文搜尋
✔ Roundcube Webmail + Sieve 規則編輯
✔ Apache Reverse Proxy + HTTPS 全面加密
✔ 自動憑證更新 + Postfix/Dovecot SNI
✔ 可擴充架構、可分散部署
在後續的文章中,你將能逐步完成一套足以在正式環境運作的 Mail 基礎架構。
🏗 本系列的系統全貌(架構概覽)
整個 Mail 生態系統以 Docker 服務為核心,所有元件都被拆分為獨立容器:
+------------------------+
| Apache Reverse Proxy |
| HTTPS / SNI / Cert |
+-----------+------------+
|
https://webmail.domain https://archive.domain
|
+-------------------+---------------------+
| |
+---------------+ +----------------------------+
| Roundcube | | Piler |
| Webmail | <------LMTP---- | 郵件封存 + 索引 + 搜尋 UI |
+---------------+ +--------------+-------------+
|
| SQL / Search
v
+--------------------------+
| Manticore Search |
| (支援中文、ICU、N-gram) |
+--------------------------+
SMTP / IMAP 服務核心
---------------------------------------------------------------
+-------------------------+
| Postfix | → SMTP 收/發、SNI、policy
+-----------+-------------+
| LMTP
+-----------v------------+
| Dovecot | → IMAP/POP3、LMTP、Sieve、Quota
+-----------+------------+
|
v
+----------------+
| User Maildir |
+----------------+
內容過濾(Anti-Spam / Anti-Virus)
---------------------------------------------------------------
SMTP Flow: Postfix → Amavis → Postfix
+-----------+------------+
| Amavis / SpamAssassin / ClamAV |
| - DKIM / SPF / SA4 / TxRep |
| - 分析、清理、加標頭 |
+-----------+------------+
郵件封存彙整(透過 Milter)
---------------------------------------------------------------
Postfix → Piler-Milter → 加 X-Envelope-To → Piler 封存
資料庫(虛擬使用者 / Postfixadmin / SpamAssassin / Piler)
---------------------------------------------------------------
|
+-------------------------+
| MariaDB |
| Postfixadmin / SA / Piler |
+-------------------------+
🔧 元件職責說明(總覽)
1️⃣ Postfix — 核心 MTA(收 / 發 / 轉、SNI、多網域)
- 處理所有 SMTP 收發
- 支援 MySQL 虛擬網域、虛擬信箱
- 支援 SNI → 多網域 SSL
- 與 Amavis 整合內容過濾
- 與 Dovecot 整合 SASL 驗證
- 與 Piler-Milter 整合封存
2️⃣ Dovecot — IMAP / POP3 / LMTP / Sieve / Quota
- 提供 IMAP/POP3 服務給使用者
- 管理使用者 Maildir(vmail)
- 提供 LMTP 作為 Postfix 的投遞端點
- 支援:
- Sieve 自動化規則
- Quota + Maildir 配額警告
- IMAPSieve → spam/ham 自動學習
- SpamAssassin 遠端 spamc 學習
3️⃣ Amavis + ClamAV + SpamAssassin — 內容安全防護
郵件經過下列流程:
Postfix → Amavis → SpamAssassin → ClamAV → Amavis → Postfix
提供:
- 病毒掃描
- 垃圾信檢查(Bayes + TxRep + DNSBL)
- DKIM 驗證 / 簽章
- 修改 spam 信件標頭
4️⃣ Postfixadmin — 網域與帳號管理
提供管理者 UI:
- 建立網域 / 使用者 / 別名
- 設定 forwarding / catch-all
- 修改密碼
- 與 MariaDB 配合存取資料
5️⃣ Piler — 郵件封存與稽核
功能包括:
- 所有內外郵件完整保留
- 使用者/管理者查詢介面
- 支援稽核、寄件人查詢、附件類型搜尋
為了支援中文,搭配:
🔍 ManticoreSearch(取代 Sphinx,具中文索引能力)
- ICU Chinese 分詞
- Ngram (2) 分段檢索
- 支援全文搜尋:標題、內文、寄件人、收件人
6️⃣ Piler-Milter — 加入 X-Envelope-To
讓 Piler 可以知道「實際投遞到哪些收件人」,以提供正確的使用者搜尋權限。
7️⃣ Roundcube — Webmail + Sieve UI
- IMAP Webmail 介面
- SMTP 寄信
- 管理 Sieve 規則(搬移到資料夾、自動分類)
- 與 Dovecot 完整整合
8️⃣ Apache Reverse Proxy + HTTPS
- 反向代理 Roundcube、Piler
- Let’s Encrypt 自動續約
- Postfix/Dovecot 憑證自動同步
- 支援多個 subdomain
📚 本系列文章的章節規劃
以下是系列內容的完整規劃,每篇均可獨立閱讀。
📘 第 1 篇:總綱篇 — Mail 系統全貌、架構、功能介紹(本篇)
📙 第 2 篇:網路架構、DNS 與憑證設計
・MX / SPF / DKIM / DMARC 必備設定
・Postfix SNI(Inbound/Outbound)
・Let’s Encrypt + 自動續約 + Postfix/Dovecot reload
📗 第 3 篇:MariaDB + Postfixadmin(虛擬網域管理)
・使用 Docker 佈署 MariaDB
・建立 postfix schema
・透過 Postfixadmin 管理使用者
・跨部門管理流程建議
📙 第 4 篇:Postfix 3.10:打造現代化 SMTP 服務核心
・Postfix 自行編譯(支援 MySQL / LMDB / PCRE2)
・完整 main.cf / master.cf 解說
・Amavis / Dovecot / Piler 整合流程
・Milter 運作解析
📘 第 5 篇:Dovecot – IMAP / POP3 / Sieve / Quota / LMTP
・虛擬使用者設定
・Quota + 配額警告信
・Sieve + IMAPSieve 自動化
・與 SpamAssassin 遠端學習整合
📙 第 6 篇:SpamAssassin + ClamAV + Amavis 全流程
・SA 4.0 + TxRep
・MySQL Bayes
・Amavis 內容過濾負責哪些
・如何做 spam / ham 的學習 pipeline
📗 第 7 篇:Amavis + ClamAV + DKIM:郵件病毒掃描、垃圾郵件處理與郵件簽章完整流程
・ClamAV(病毒掃描)
・SpamAssassin(垃圾郵件評分)
・DKIM 簽章
・Postfix inbound/outbound content-filter 流程
・如何在 Docker 架構中部署 Amavis + ClamAV
📘 第 8 篇:Piler + Manticore 中文全文檢索(含 Milter)
・建置 Piler
・為何 Sphinx 無法中文
・Manticore + ICU Chinese
・X-Envelope-To 封存邏輯
📙 第 9 篇:Roundcube Webmail + Managesieve
・Webmail 基礎
・SMTP/IMAP TLS 驗證
・Sieve UI(搬移 / 自動分類)
・Proxy 與 TLS 問題排除
📗 第 10 篇:郵件系統完整架構、維運、監控、安全、備份策略
・logrotate
・fail2ban
・備份 maildir / MariaDB / piler store
・版本升級策略
📘 第 11 篇:完整故障排除指南
・常見錯誤與排查流程
・完整 troubleshooting checklist
・各服務常用 debug 指令
・FAQ(最常被問的問題)
・如何快速判斷是哪個模組出錯
📙 第 12 篇:進階篇:高可用性架構、Failover、GeoDNS、監控與郵件濫用自動化防護(SOAR)
・Mail Server 高可用性
・Mail Server 高可用性架構選項
・Failover 設計細節
・GeoDNS — 多區域入口
・監控(Monitoring)設計
・SOAR(安全事件自動化)
・安全最佳化建議
・企業級郵件架構未來升級方向
📗 第 13 篇:企業郵件系統部署腳本 + 維運標準作業流程(SOP)
・系統部署架構總表
・部署順序
・一鍵部署腳本
・維運 SOP
・最常見三大問題與排除流程
・建議加入公司 IT 維運手冊的文件
📘 第 14 篇:Mail Server 全系統架構與流程總覽
・Mail Server 系統完整架構圖
・郵件收信流程
・郵件寄信流程
・Piler(郵件歸檔)與 Manticore(全文檢索)流程
・Spam/Ham 遠端學習
・Roundcube Webmail 與 Apache 反向代理
・主機防火牆與 Docker 網路規劃
・所有容器服務總表
・整套 Mail Server 架構完成後的能力
📙 第 15 篇:備援架構、維運策略與長期擴充指南
・提供可落地的 高可用方案(HA)
・針對平台各服務提出 備援選項與擴充方向
・建議監控、備份與自動化策略
・逐項列出若跨地部署、多 Domain、跨國團隊如何維運
・分享實務上的 故障排除 SOP 與 災難恢復流程(DR)
📗 第 16 篇:全鏈路監控與告警系統:打造企業級 Mail Platform 的監控中心
・郵件平台要監控哪些項目
・推薦的完整監控架構
・要安裝哪些 Exporter
・建立 Grafana 視覺化儀表板
・告警(Alerting)規則建議
・SMTP / IMAP 外部探測監控
・統一事件通知
・實際部署建議
📘 第 17 篇:企業郵件系統的安全、稽核與資料治理
・安全治理:企業郵件系統的第一道防線
・稽核治理:郵件行為的可追蹤性
・資料治理
・資安事件處理
・全面採用 Zero Trust 郵件模型
・建議補強清單
📙 第 18 篇:郵件系統備份、災難復原(DR)、異地部署策略完整指南
・為什麼郵件系統的備份與 DR 特別重要
・全系統備份項目總表
・備份策略建議
・每日 / 每週 / 每月 備份排程
・災難復原 DR(Disaster Recovery)完整 SOP
・異地備援架構
・建議的自動化備份腳本
📗 第 19 篇:郵件系統「日常維運、監控、效能優化」完整指南
・日常檢查項目
・異常排查 SOP
・監控設計
・效能最佳化
・安全強化建議
📘 第 20 篇:郵件系統的全面資安強化
・TLS:郵件傳輸加密
・SPF:寄件來源驗證
・DKIM:郵件內容簽章
・DMARC:偽造郵件的終極防線
・MTA-STS:SMTP 加密強制政策
・DANE:基於 DNSSEC 的 TLS 保護
・現代企業郵件系統「資安等級」標準