![Postfix 通过特定接口将出站电子邮件路由到域](https://linux22.com/image/719898/Postfix%20%E9%80%9A%E8%BF%87%E7%89%B9%E5%AE%9A%E6%8E%A5%E5%8F%A3%E5%B0%86%E5%87%BA%E7%AB%99%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E8%B7%AF%E7%94%B1%E5%88%B0%E5%9F%9F.png)
由于服务器受到攻击,目前 outlook.com/live.com 已被列入黑名单,为了恢复电子邮件服务,我正在尝试配置 Postfix,以通过特定 IP 地址 2.2.2.2 为 outlook.com/live.com 传递任何收到的电子邮件,Postfix 仍将监听 1.1.1.1 端口 25 上的连接
到目前为止我已经创建了以下内容
主配置文件
sender_dependent_default_transport_maps = hash:/etc/postfix/sdd_transport.pcre
sdd_传输.pcre
@outlook.com 微软 smtp
主配置文件
microsoft-smtp unix - - n - - smtp -o smtp_bind_address=XX.XX.XXX.XX -o smtp_helo_name=mx.XXXXXXXX.com -o syslog_name=/var/log/mail.log.microsoft
根据其他指南,这一切看起来都很好,但是连接到 2.2.2.2 不会返回正确的 smtp_helo 名称,并且没有文件写入 /var/log
我是否遗漏了什么?
答案1
我认为您的设置不是您想要的,但您现在的问题是由于测试方法不充分而无法确认您的设置。
建议:通过添加第二个条目,用实际邮件测试您的设置 -一个用于接收你的邮件的域名,无论使用哪个 IP- 到您的传输图,然后调查收到的邮件中的Received:
标题以确认您的设置。
-o smtp_bind_address=2.2.2.2
连接到 2.2.2.2 未返回正确的 smtp_helo 名称
只是因为你告诉 postfix 在充当 smtp 时绑定到某个 IP客户并不意味着它会以单独的 smtp 方式监听该 IP 上的传入连接服务器(“smtpd”)。您的 smtpd 监听所有接口并在该辅助 IP 上宣布其主机名,这不一定与使用不同 helo 的传出 smtp 连接冲突。
syslog_name=/var/log/mail.log.microsoft
没有文件写入 /var/log
并且,在典型的 syslog 配置中不应创建任何附加文件。它不是路径,只是要添加到生成的日志行中的注释 - 这些日志行最终仍位于同一文件中。文档中写道:
syslog_name
在系统日志记录中,添加到进程名称前的前缀,例如,“smtpd”变为“prefix/smtpd”。