使用 Postfix 将邮件转发到不同的域 - 所有域都托管在同一服务器上 - 外部电子邮件托管

使用 Postfix 将邮件转发到不同的域 - 所有域都托管在同一服务器上 - 外部电子邮件托管

我有一台服务器托管多个域 - 一个主域和几个别名域。

main.com
alias1.com
alias2.com

我使用域名注册商 (Gandi.net) 的电子邮件服务作为主域名。我希望所有发送到别名域名的电子邮件都转发到主域名的电子邮件服务。我认为这意味着只需将它们转发到 @main.com

我正在努力进行 Postfix(也许是 DNS?)设置。

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

所有域名都有一个针对 mail.[domain].com 的 A/AAAA 记录,指向服务器 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]

根据测试电子邮件的退回情况 - 我似乎收到了“连接被拒绝”的结果。

有什么想法或建议吗?

答案1

这是防火墙 (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 邮件记录告诉互联网上的邮件服务器(不是您的)它们应该将邮件发送到哪个 IP 地址。每个域都有一个 mail.[domain].com 的 A 记录,该记录解析为服务器 IP 地址。我认为可以将其保留为 mail.alias[x].com,但将其改为 mail.superdomain.com 似乎更简洁,因为超级域在概念上是邮件服务器域。
  • mydestination 指定 Postfix 可以在此服务器上传递到哪些域 - 即本地
  • virtual_alias_domains 指定允许 postfix 将邮件转发(别名)到哪里

相关内容