我正在尝试设置一个电子邮件服务器,使其能够从多个 IP 地址发送电子邮件,因此我们的营销系统可以从多个域发送电子邮件,同时保持反向 DNS 查找的一致性。IE,domain1.com 解析为 10.0.0.1,domain2.com 解析为 10.0.0.2 等等。
理想情况下,邮件服务器将检查from
标头中的域,然后从池中选择正确的 IP 地址,并将其用于实际发送。现在,我们正在使用 Exim,我在想一种解决方案是在不同的接口上运行多个 Exim 实例,然后编写一个 SMTP 代理来检查标头并将电子邮件转发到正确的 Exim 实例,但是我在想可能有比这更简单的解决方案。
众所周知,这不涉及垃圾邮件,我们拥有我们将使用的所有域和 IP 地址。
如果我理解您,您的邮件在服务器上,并且该服务器上配置了 4 个 IP 地址。您希望邮件服务器在发送到 Internet 时使用这四个 IP 之一作为出站接口。如果这是错误的解释,请告诉我。
Exim SMTP 传输可以配置为通过不同的接口发送电子邮件。以硬编码的方式,您可以这样做:
我是 99.99% 以上会起作用,尽管它显然很难看。我认为您需要动态处理的所有内容都在那里(“界面”是可扩展的)。
为了保持路由完整性,我认为您必须将不同的 exim 实例绑定到不同的接口(如您所说)
代理并不是真正需要的,您可以简单地使用带有条件集的路由器(每个域/来自:匹配)来指示要通过哪个“主机”进行中继。
从来没有试过这个。有兴趣知道它是否有效..
Exim 可以根据“From:”标头中的域名从不同的 IP 地址发送电子邮件。无需单独对每个域进行硬编码。传输接口
remote_smtp
应设置如下:/etc/exim/domainips
需要按以下格式创建域-IP 对列表:此外,如果 10.0.0.1 的 PTR 记录指向 domain1.com,那么最好相应地设置 HELO:
如果电子邮件是由 PHP/Apache 发送的,那么无论“发件人:”标头如何(例如 apache@primary_hostname.com),实际的信封发件人总是相同的。为了解决这个问题,可以设置 return_path:
理想情况下,
remote_smtp
传输将如下所示: