如何使用 Postfix 将所有域名设置为“虚拟托管”

如何使用 Postfix 将所有域名设置为“虚拟托管”

我已经配置了一个带有主域和几个虚拟域的 Postfix 服务器,并交叉检查了多个教程和有关虚拟主机的官方文档。Postfix 还设置为最终将所有邮件传递到 Dovecot,后者应处理 (Unix) 用户邮箱。换句话说,我需要 Postfix 做的就是在接收端进行地址重写。

据我所知,我的配置中的重要摘录如下(如果缺少任何重要内容,请提醒我,我会编辑问题):

/etc/postfix/main.cf

myhostname = mail.first_domain.tld
mydomain = first_domain.tld

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

virtual_alias_domains = second_domain.tld, third_domain.tld, ...
virtual_alias_maps = hash:/etc/postfix/virtual

local_transport = dovecot
mailbox_transport = dovecot
virtual_transport = dovecot

/etc/postfix/master.cf

# ...
dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
# ...

/etc/postfix/virtual

postmaster@second_domain.tld        postmaster
postmaster@third_domain.tld         postmaster
# ...

/etc/aliases

postmaster@first_domain.tld         postmaster
# ...

在我的用例中,我不需要区分本地和虚拟邮件传递。如果找到合适的规则,我只想重写地址。如果没有,就直接传递邮件。但是,虚拟主机文档非常清楚地说明了“切勿将虚拟别名域名列为我的目标域名!”

有没有办法只使用虚拟交付来完成所有事情?为了简化配置,完全放弃/etc/aliases文件。理想情况下,我希望能够手动定义所有接收地址,并且不介意明确地写出它们。

相关内容