对于使用本地域的postfix中继的外发邮件,请使用/ etc / aliases

我正在使用Ubuntu 12.04,后缀配置为卫星系统,可以将外发邮件转发到Gmail。 例如,我的注册域名是example.com我希望root cronjobs的错误输出邮寄到我的真实david@example.com收件箱。 我有这个继电器正常工作。

但是这些root cronjobs默认设置为发送电子邮件至root@example.com,这不是真正的电子邮件地址。 我有/etc/aliases

 root: david@example.com 

example.com没有在postfix的main.cf的mydestination列出,所以postfix不认为这封邮件是本地的。 它通过/etc/aliases绕过处理并尝试发送到root@example.com。

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

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

如果exam​​ple.com是您在postfix上的域名:

/etc/postfix/main.cf

 virtual_alias_maps = hash:/ etc / postfix / virtual

/etc/postfix/virtual

 root@example.com戴夫

编辑后

 postmap hash:/ etc / postfix / virtual

它应该工作。

如果我正确理解了您的问题,发送到root@example.com的电子邮件现在将转到本地用户dave。

另一种解决方案是使用postfix的recipient_canonical_maps配置参数。 与virtual_alias_maps相比,优势在于myorigin既不需要在mydestination也不需要在virtual_mailbox_mapsvirtual_alias_domains默认为)。 因此,此后缀实例不会成为myorigin的最终目标。

将其添加到main.cf

 recipient_canonical_maps = hash:/etc/postfix/recipient_canonical 

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

 root@example.com david@example.com 

最后哈希吧。

 # postmap /etc/postfix/recipient_canonical 

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

 root: david 

然后,您可以在david帐户上使用其他后缀规则或.forward文件来将邮件发送到Gmail。