对于使用本地域的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
处理其收件人的电子邮件?
我想你可以使用虚拟别名。
如果example.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_maps
( virtual_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。