如何根据收件人地址将邮件转发(或代理)到不同的 smtp 服务器?
我有一台机器,其 SMTP(postfix)服务器监听端口 25。我想使用 Lamson(http://lamsonproject.org/) 来处理一些收到的邮件,还有一些邮件我想用 Postfix 来处理。
我的想法是设置 Lamson 来监听不同的端口,比如 localhost:10025。然后我设置 postfix 通过监听端口 25 来捕获所有邮件。
如何配置 Postfix 以将某些邮件代理到 10025 上的 Lamson 并自行处理所有其他邮件?
答案1
Postfix 的配置非常灵活(因此也很复杂),因此有多种方法可以实现这一点。最简单的方法可能是使用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
然后,创建一个适当的表。例如,重定向域“example.com”的所有邮件以及“[电子邮件保护]“到您本地的 Lamson 监听端口 10025:
/etc/postfix/transport:
example.com smtp:127.0.0.1:10025
[email protected] smtp:127.0.0.1:10025
此后(每次更新传输表文件后)不要忘记运行:
$ postmap /etc/postfix/transport
这应该可以让你开始行动了。请务必阅读transport(5)
手册页,它将为您提供有关如何使用此强大功能的更多想法。