我的问题基本归结为:Exchange(2016)接受邮件为不存在的地址,然后发送DSNs(传递状态通知)通知发件人失败。 我希望它立即拒绝邮件发送到不存在的地址与550响应。
更多的背景
我的设置大致如下所示:
+-----+ Datacenter Office |User1| +----------+ +---------+ +----------+ +-----+ +-----+ | Internet | <--> | Postfix | <--> | Exchange | |UserN| +----------+ +---------+ +----------+ +-----+ +-----+ |User2| +-----+
传入的邮件首先命中我的postfix服务器,它执行病毒扫描,垃圾邮件过滤和隔离。 然后它被转发到我们的办公室Exchange服务器。
Postfix被configuration为对交换服务器进行收件人validation。 这包括连接到服务器并执行部分SMTP事务,直到RCPT TO命令。 如果服务器以代码250响应,则接收方被认为是有效的。
问题是,Exchange始终以250响应…它显然甚至不会尝试在接收到RCPT TO命令时进行任何validation。
我已经按照technet上的说明启用了Exchange中的反垃圾邮件function和收件人validation,但是我不知道它做了什么,因为Exchange的SMTP服务器的行为与我做任何事情之前的行为完全相同。
以下是我在Exchange服务器上运行的命令,试图使其工作。
& $env:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1 Restart-Service MSExchangeTransport Set-RecipientFilterConfig -Enabled $true Set-RecipientFilterConfig -RecipientValidationEnabled $true
Exchange的收件人validation是否应该在收到RCPT TO立即进行validation? (如果不是,它究竟做了什么?)
这个问题是相似的,它接受的答案为我工作。
要在RCPT TO命令之后立即完成收件人validation,您必须连接到集线器传输(而不是前端传输)。 我编辑了一个现有的集线器传输绑定到端口2525,检查框允许“匿名用户”连接到它(确保通过其他方式locking,所以只有已知的服务器可以访问它)。
然后,我改变了我的网关(后缀)服务器上的设置,使用端口2525与此交换服务器通信时。 在这一点上,收件人validation按预期开始工作。
我会切换到LDAP查找,而不是尝试在SMTP通信上失败。 更可靠。