Domain-Name-System
使用 Postfix 將郵件轉發到不同的域 - 所有域都託管在同一台伺服器上 - 外部電子郵件託管
我有一台伺服器託管多個域 - 一個主域和幾個別名域。
域
main.com alias1.com alias2.com
我將域名註冊機構 (Gandi.net) 的電子郵件服務用於主域。我希望將所有發送到別名域的電子郵件轉發到主要的電子郵件服務。我認為這意味著只需將它們轉發到@main.com
我正在為 Postfix(也許還有 DNS?)設置而苦苦掙扎。
域名系統
main mx records fb.mail.gandi.net <-- Gandi's settings - I'm sure they're correct spool.mail.gandi.net alias1 mx records mail.alias1.com alias2 mx records mail.alias2.com
所有域都有郵件的 A/AAAA 記錄。
$$ domain $$.com 指向伺服器 IP 地址。 我還有一個第四個域(superdomain.com),用作伺服器的主機名。它的 DNS 記錄看起來與 main.com 相同。
使用 Postfix 的這個頁面 - http://www.postfix.org/VIRTUAL_README.html - 看起來我可以使用虛擬別名域
main.cf 設置
myhostname = mail.superdomain.com mydestination = pluto.superdomain.com localhost.superdomain.com localhost $myhostname localhost.$mydomain virtual_alias_domains = alias1.com alias2.com virtual_alias_maps = hash:/etc/postfix/virtual relay_domains = main.com
虛擬文件內容
@alias1.com @main.com @alias2.com @main.com
這些設置可能看起來有點奇怪。到目前為止,我已經嘗試了很多組合:-P。虛擬文件的結構來自如何在 Postfix 中將所有郵件從一個域重定向到另一個域的答案?
$$ serverfault.com $$ 根據測試電子郵件的退回 - 我似乎得到了“連接被拒絕”的結果。
有什麼想法或提示嗎?
這是一個防火牆(iptables)問題!在某些時候,我更改了防火牆並完全忘記了:-P
對於將來可能有助於執行此操作的人,執行此操作的最終配置是:
main mx records fb.mail.gandi.net spool.mail.gandi.net alias1 mx records mail.superdomain.com alias2 mx records mail.superdomain.com
main.cf 設置
myhostname = mail.superdomain.com mydomain = superdomain.com mydestination = pluto.superdomain.com, localhost.superdomain.com, localhost virtual_alias_domains = alias1.com alias2.com
虛擬文件內容
@alias1.com @main.com @alias2.com @main.com
額外的防火牆/iptables 規則
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
設置的要點是:
- mx 郵件記錄告訴 Internet 上的郵件伺服器(不是您的)他們應該將郵件發送到哪個 IP 地址。每個域都有郵件的 A 記錄。$$ domain $$.com 解析到伺服器 IP 地址。我認為它可以保留為 mail.alias$$ x $$.com 但將其命名為 mail.superdomain.com 似乎更簡潔,因為超級域在概念上是郵件伺服器域。
- mydestination 指定 postfix 可以在此伺服器上傳遞到哪些域 - 即本地
- virtual_alias_domains 指定允許後綴轉發(別名)郵件的位置