Debian 預設郵件傳輸代理 (MTA) 即為 Exim,基礎系統已內建,配置語法清晰、文件豐富、效能優異,較 Sendmail/qmail/Postfix 更適合中小型辦公室快速部署。本教學基於 Jan W. Stumpel 原著改寫,實測於 Debian + Windows 2000 混合環境。
| 項目 | 數值 |
| Linux 主機名 | Debian.test.com (192.168.1.1) |
| Windows 主機名 | Notepad.test.com (192.168.1.2) |
| 內網域名 | test.com(僅內部使用,未公開註冊) |
| ISP SMTP | smtp.yeah.net |
| ISP POP3 | pop3.yeah.net |
| 管理員帳號 | kanaka / kanaka@yeah.net |
| 一般用戶 | ganghua / ganghua@test.com (內部) → ganghua@yeah.net (外部) |
安裝必要套件
apt-get update
apt-get install fetchmail fetchmailconf qpopper
# Exim、mail 已在 base 內建
fetchmailconf 需 X Window,伺服器通常無桌面,後續採手動編寫 .fetchmailrc。
Exim 設定(eximconfig 互動式)
eximconfig
關鍵回答:
- 系統類型:Internet site(雖在區網,需對外發信)
- 顯示郵件域名:
test.com
- 其他主機名稱:
Debian:localhost
- 不轉發非本地域郵件:
none
- 允許轉發的本地域網段:
192.168.1.0/16
- Smart host(外發郵件智能主機):
smtp.yeah.net
- 系統管理員郵件:
kanaka(非 root)
修正外發 From: 地址(關鍵技巧)
內部郵件 From: ganghua@test.com 無法被外部回覆(test.com 未公開解析)。利用 Exim transport_filter 重寫 From: 標頭。
- 建立 Perl 過濾腳本
/usr/bin/outfit:
#!/usr/bin/perl
while (<>) {
if (/^From: /) { s/<.*>/<kanaka@yeah.net>/; print; last; }
print;
}
while (<>) { print; }
chmod +x /usr/bin/outfit
- 編輯
/etc/exim/exim.conf,在 driver = smtp 下方新增:
headers_remove = "sender"
transport_filter = "/usr/bin/outfit"
- 重啟 Exim:
/etc/init.d/exim restart。
此後所有外發郵件 From: 均改寫為 kanaka@yeah.net,外部回覆無阻;內部郵件不受影響。
Fetchmail 設定(無 X 環境手動版)
- 切換用戶:
su - kanaka
- 建立
~/.fetchmailrc(權限 600):
set postmaster "postmaster"
poll pop3.yeah.net with proto POP3
user "kanaka@yeah.net" password "kanakapswd"
- 測試:
fetchmail -v 觀察抓信過程。
- 生產環境建議加入
cron 定時抓信(如每 5 分鐘)。
qpopper 設定
安裝後預設監聽 110 埠,無需額外配置即可服務 Outlook Express。Windows 端帳號設為 Linux 系統帳號(如 ganghua),密碼同步即可收信。
進階調整與測試
smtp_accept_queue_per_connection = 0 解除單次連線投遞上限(預設 100),防大量郵件阻塞。
- 雙向測試:Linux
mail kanaka、Windows OE 收發、外部 kanaka@yeah.net 回覆驗證。
- 下一步規劃:
.forward 轉發、Webmail (SquirrelMail/Roundcube) 部署、SpamAssassin + ClamAV 反垃圾/病毒閘道。
本系列教學按順序閱讀效果最佳:(一) Apache+MySQL+PHP → (二) Wu-ftpd → (三) Exim 郵件 → (四) 其他服務。