我正在尝试设置电子邮件服务器,因此它可以从多个IP地址发送电子邮件,因此我们的营销系统可以从多个域发送电子邮件,同时保持反向DNS查找的一致性. IE,domain1.com解析为10.0.0.1,domain2.com解析为10.0.0.2等.
理想情况下,邮件服务器将检查标头中的from域,然后从池中选择正确的IP地址,并将其用于实际发送.现在,我们正在使用Exim,我认为一种解决方案是在不同的接口上运行Exim的多个实例,然后编写一个SMTP代理来执行标头检查并将电子邮件转发到正确的Exim实例,但是我想可能有一个比这更简单的解决方案.
解决方法
如果我理解你,你在服务器上有邮件,而且该服务器上配置了4个IP地址.您希望邮件服务器在发送到互联网时,使用这四个IP中的一个作为出站接口.如果这是错误的解释,请告诉我.
可以将Exim SMTP传输配置为通过不同的接口发送电子邮件.以硬编码方式,您可以这样做:
routers: send_domaina_com: driver = dnslookup domains = domaina.com transport = domaina_com_smtp send_domainb_com: driver = dnslookup domains = domainb.com transport = domainb_com_smtp send_domainc_com: driver = dnslookup domains = domainc.com transport = domainc_com_smtp send_domaind_com: driver = dnslookup domains = domaind.com transport = domaind_com_smtp TRANSPORTS: domaina_com_smtp: driver = smtp interface = 10.0.0.1 domainb_com_smtp: driver = smtp interface = 10.0.0.2 domainc_com_smtp: driver = smtp interface = 10.0.0.3 domaind_com_smtp: driver = smtp interface = 10.0.0.4
我99.99%以上会起作用,虽然它显然很难看.我认为你需要动态处理的所有东西都在那里(“界面”是可扩展的).