我正在使用transport
表格来指定特定域的下一跳:
主持人A:
/etc/postfix/transport
domain.com smtp:[mail.host2.com]:25
Host A
使用查找表验证本地收件人:
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
- 但我想知道是否有办法在 SMTP 时验证远程收件人,
Host B
以Host A
避免 NDR 伪造电子邮件。
更新时间:2014 年 7 月 28 日星期一 13:49:01 BST:
看起来像Exim 可以通过 LMTP 进行收件人电子邮件验证所以我想知道 Postfix 是否可以做同样的事情?
# Perform recipient verification
deny message = Recipient verification failed, Non-existent mailbox
log_message = Recipient verification failed
!verify = recipient/callout=2m,use_postmaster,defer_ok
答案1
不存在这种普遍有效的方法。这种技术不仅对垃圾邮件发送者非常有用,而且您无法知道邮件通过公司对外宣传的邮件网关后会发生什么。
也许它会留在该盒子的线轴上,同时检查垃圾邮件和病毒,然后将其传送到内部服务器,供收件人最终传送和阅读;这是一种很常见的设置。中继盒根本不知道哪些用户是真正有效的 - 它只是清理内容并将其传递下去 - 所以即使有办法询问它,它也无法告诉你。
编辑鉴于更新:这不会帮助你。你链接到的文章展示了一个中继箱,它接受组织内部的入站最终交付邮件,并通过 LMTP 调用使其知道最终交付点上用户的存在/不存在。
在我上面的例子中,LMTP 交付可用于(假设的)远程中继系统,使其能够知道哪些收件人最终会在最终入站交付时成为有效用户。但你无法强迫他们在中继盒上启用该功能,除非您这样做,否则当您尝试验证收件人时,他们的中继盒不知道该告诉您什么。
基本上,有很多方法可以验证收件人在组织的信任边界内但是(幸运的是)没有在整个互联网上普遍有效的方法。