如何根据“收件人”地址将邮件转发(或代理)到不同的smtp服务器?
我有一台装有SMTP(后缀)服务器的机器在端口25上侦听。我想使用Lamson(http://lamsonproject.org/)处理一些传入邮件和一些我想用后缀处理的邮件。
我的想法是将Lamson设置为侦听其他端口,例如localhost:10025。然后,我设置postfix通过侦听端口25来捕获所有邮件。
如何配置Postfix在10025年将某些邮件代理到Lamson并处理所有其他邮件本身?
如何根据“收件人”地址将邮件转发(或代理)到不同的smtp服务器?
我有一台装有SMTP(后缀)服务器的机器在端口25上侦听。我想使用Lamson(http://lamsonproject.org/)处理一些传入邮件和一些我想用后缀处理的邮件。
我的想法是将Lamson设置为侦听其他端口,例如localhost:10025。然后,我设置postfix通过侦听端口25来捕获所有邮件。
如何配置Postfix在10025年将某些邮件代理到Lamson并处理所有其他邮件本身?
Answers:
Postfix的配置极其灵活(因此非常复杂),因此有多种方法可以实现。最简单的方法可能是使用transport(5)
表。
首先,在后缀中启用传输表的使用:
/etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport
您还必须确保Postfix接受将由Lamson处理的地址的邮件。查看permit_auth_destination
Postfix将用于确定有效收件人地址的规则。对于以下示例,假设“ example.com”是Postfix未知的域,则将其简单地添加为中继域可能是最简单的:
/etc/postfix/main.cf:
relay_domains = example.com
然后,创建一个适当的表。例如,将域“ example.com”的所有邮件以及“ user@mydomain.org”的邮件重定向到侦听端口10025的本地Lamson:
/etc/postfix/transport:
example.com smtp:127.0.0.1:10025
user@mydomain.org smtp:127.0.0.1:10025
之后(然后在每次对传输表文件进行更新后一次)不要忘记运行:
$ postmap /etc/postfix/transport
这应该可以帮助您。请务必阅读transport(5)
手册页,它将为您提供有关如何使用此强大功能的更多想法。
relay_domains
。我更新了答案以将其合并。
smtp_host_lookup
,您还可以使用127.0.0.1
代替localhost
。我已经更新了答案以适应这种改进。