使用 /etc/aliases 来通过本地域的 postfix 中继发送邮件

使用 /etc/aliases 来通过本地域的 postfix 中继发送邮件

我使用的是 Ubuntu 12.04,其中 postfix 配置为卫星系统,将外发邮件转发到 Gmail。为了举例说明,我的注册域名是 example.com,我希望 root cronjobs 的错误输出能够通过邮件发送到我的实际[电子邮件保护]收件箱。我的这个中继工作正常。

但这些 root cronjobs 默认设置为发送电子邮件至[电子邮件保护]这不是真正的电子邮件地址。我的/etc/aliases

root: [email protected]

example.com 未列在 postfix 的 main.cf 中,mydestination因此 postfix 认为这封邮件不是本地邮件。它绕过处理/etc/aliases并尝试发送到[电子邮件保护]

MAILTO=david一种解决方法是在每个 cron 文件的顶部添加。但方法有很多。另一种解决方法是设置[电子邮件保护]作为一个真正的收件箱,转发到[电子邮件保护]。有没有更好的方法?即有没有办法中继具有本地域但仍使用 处理其收件人的电子邮件/etc/aliases

答案1

我想您可以使用虚拟别名。

如果 example.com 是您在 postfix 上的域名:

/etc/postfix/main.cf

virtual_alias_maps = hash:/etc/postfix/virtual

/etc/postfix/virtual

[电子邮件保护]    戴夫

编辑后

postmap 哈希:/etc/postfix/virtual

它应该可以工作。

如果我理解正确的话,请发送电子邮件至[电子邮件保护]现在将转到本地用户 dave。

答案2

另一个解决方案是使用recipient_canonical_mapspostfix 的配置参数。与 相比virtual_alias_maps,其优点是myorigin既不需要在 中mydestination,也不需要在 中virtual_mailbox_mapsvirtual_alias_domains默认为)。因此,此 postfix 实例确实不是成为 的最终目的地myorigin

将其添加到您的main.cf

recipient_canonical_maps = hash:/etc/postfix/recipient_canonical

然后创建一个名为的文件/etc/postfix/recipient_canonical并输入如下内容:

[email protected] [email protected]

最后将其哈希化。

# postmap /etc/postfix/recipient_canonical

答案3

如果 david 也是本地帐户,那么您可以让别名行仅限本地,然后设置 david 帐户来执行转发。/etc/aliases 将是:

root: david

然后,您可以使用其他 postfix 规则或 david 帐户上的 .forward 文件将邮件发送到 gmail。

相关内容