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

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

如何根据收件人地址将邮件转发(或代理)到不同的 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_destinationPostfix 将应用这些规则来确定有效的收件人地址。对于以下示例,假设“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)手册页,它将为您提供有关如何使用此强大功能的更多想法。

相关内容