在 postfix 中混合虚拟转发和虚拟邮箱

Jas*_*per 4 email postfix

我正在设置一个 postfix 服务器。我尝试的第一件事是将邮件投递到虚拟邮箱:

主文件

[..]
virtual_mailbox_domains = /etc/postfix/virtual_domains
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox
Run Code Online (Sandbox Code Playgroud)

虚拟域

mydomain.com
Run Code Online (Sandbox Code Playgroud)

虚拟邮箱

jasper@mydomain.com mydomain.com/jasper
Run Code Online (Sandbox Code Playgroud)

这有效。或者,我可以在我的虚拟域上使用转发:

主文件

[..]
virtual_alias_domains = /etc/postfix/virtual_domains
virtual_alias_maps = hash:/etc/postfix/virtual_forwards
Run Code Online (Sandbox Code Playgroud)

虚拟域

mydomain.com
Run Code Online (Sandbox Code Playgroud)

虚拟转发

jasper2@mydomain.com myemail@gmail.com
Run Code Online (Sandbox Code Playgroud)

这也有效。但是,如果我尝试同时使用两者,我的日志会显示一条警告,指出我不应该在两个域中使用相同的域virtual_mailbox_domainsvirtual_alias_domains并且只能使用其中一个域。

不过,这正是我想要完成的,为虚拟域上的某些帐户转发邮件并为同一虚拟域上的其他帐户存储邮件。有没有办法用postfix来完成这个?

Jas*_*per 5

在我发布这个问题之后,另一个可能解决这个问题的想法突然出现在我的脑海中。这不是确切的解决方案,但它仍然引导我找到解决方案。它实际上相当简单:您只需指定域 invirtual_mailbox_domains而不是 in virtual_alias_domains,它就会起作用。

所以:

主文件

[..]
virtual_mailbox_domains = /etc/postfix/virtual_domains
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox
virtual_alias_maps = hash:/etc/postfix/virtual_forwards
Run Code Online (Sandbox Code Playgroud)

虚拟域

mydomain.com
Run Code Online (Sandbox Code Playgroud)

虚拟邮箱

jasper@mydomain.com mydomain.com/jasper
Run Code Online (Sandbox Code Playgroud)

虚拟转发

jasper2@mydomain.com myemail@gmail.com
Run Code Online (Sandbox Code Playgroud)

现在转发邮箱都可以工作。(当然,您仍然可以指定virtual_alias_maps,只要您将该域排除在外(我假设),但我没有用它,所以我完全删除了它。)