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

Mat*_*ias 11 postfix proxy forwarding

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

我有一台带有 SMTP(后缀)服务器侦听端口 25 的机器。我想使用 Lamson(http://lamsonproject.org/)来处理一些传入的邮件和一些我想让 postfix 来处理的邮件。

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

如何配置 Postfix 以将某些邮件代理到 10025 上的 Lamson 并自行处理所有其他邮件?

ear*_*arl 19

Postfix 的配置非常灵活(因此也很复杂),因此有多种方法可以实现这一点。最简单的方法可能是使用transport(5)表格。

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

/etc/postfix/main.cf:
    transport_maps = hash:/etc/postfix/transport
Run Code Online (Sandbox Code Playgroud)

您还必须确保 Postfix 接受由 Lamson 处理的地址的邮件。查看permit_auth_destinationPostfix 将应用于确定有效收件人地址的规则。对于以下示例,假设“example.com”是 Postfix 不知道的域,将其添加为中继域可能是最简单的:

/etc/postfix/main.cf:
    relay_domains = example.com
Run Code Online (Sandbox Code Playgroud)

然后,创建一个适当的表。例如,将域“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
Run Code Online (Sandbox Code Playgroud)

之后(然后在每次更新传输表文件后一次)不要忘记运行:

$ postmap /etc/postfix/transport
Run Code Online (Sandbox Code Playgroud)

这应该能让你继续前进。一定要阅读transport(5)手册页,它会给你更多关于如何使用这个强大工具的想法。