用Postfix代理邮件到不同的smtp服务器

如何转发(或代理)邮件到不同的smtp服务器取决于收件人地址?

我有一台SMTP(后缀)服务器监听端口25的机器。我想用Lamson( http://lamsonproject.org/ )来处理一些收到的邮件和一些邮件,我希望有postfix来处理。

我的想法是设置Lamson在不同的端口上听,比如localhost:10025。 然后我设置postfix通过侦听端口25捕获所有的邮件。

如何configurationPostfix在10025上将某些邮件代理给Lamson,并处理所有其他邮件?

Postfix在其configuration中非常灵活(因此是复杂的),因此有多种方法来实现这一点。 最简单的方法可能是使用transport(5)表。

首先,在postfix中启用一个传输表:

 /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 

然后,创build一个适当的表格。 例如,将域名“example.com”的所有邮件以及“user@mydomain.org”的邮件redirect到在本地端口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)手册页,这将给你更多关于如何使用这个强大的设施的想法。