Domain-Name-System

使用 Postfix 將郵件轉發到不同的域 - 所有域都託管在同一台伺服器上 - 外部電子郵件託管

  • August 23, 2013

我有一台伺服器託管多個域 - 一個主域和幾個別名域。

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 指定允許後綴轉發(別名)郵件的位置

引用自:https://serverfault.com/questions/531977