MailPlus 日志 450 4.7.1 Host not found:HELO 主机名查无此机的三层动法
痛点场景
业务同事来问:供应商的报价单邮件又没收到,对方那边显示发送成功。管理员打开 MailPlus Server > 审核 > 日志,翻到一条记录:
450 4.7.1 Helo command rejected: Host not found
先定性:临时拒绝,卡在 HELO 主机名上
看 SMTP 状态码的开头就能定性:4 开头是临时性失败、邀请对方稍后重试;5 开头才是最终拒绝。这条 450 属于前者,官方诊断口径是:MailPlus Server 拒绝了这条 SMTP 连接,因为它无法从 SMTP HELO 命令解析主机名。
HELO 是邮件服务器建立连接时自报家门的环节——对方报出一个主机名,你的服务器去 DNS 里核对这个名字。核对不上,通常有两种来路:
- 发件方 DNS 设置不正确:HELO 里报的主机名在 DNS 记录里找不到与 IP 地址的对应关系,正规服务器配置疏漏时也会这样;
- 发件人可能是垃圾邮件发送者:伪造一个查无此机的主机名,正是低成本掩盖真实来源的手法。
和两条近亲日志别认错对象:504 开头的 HELO 拒绝是主机名格式不合规被拦、属于最终拒绝;450 4.5.1 的 Domain not found 解析不到的是发件域而不是 HELO 主机名。本文这条 450 4.7.1,卡的是 HELO 自报的主机名,而且是临时拒绝——处理得当,对方的重试还能正常进来。
三层动法:从轻到重
第一层,请发件人自查 DNS。 官方给出的首选方法:请发件人检查 DNS 记录中的主机名和 IP 地址之间的映射。绝大多数正规邮件服务器把 HELO 主机名的正反向记录补齐后,下一轮重试就能正常通过这道检查,你这边什么都不用改。
第二层,为确认过的发件方落一条放行。 如果对方是长期合作的业务系统、DNS 一时改不动,可以将发送服务器的 IP 地址添加到 MailPlus Server > 邮件投递 > 安全性 > 封锁/允许列表。放行的只有这一个来源,其余所有来源照旧过检查。
第三层,关闭主机名检查。 确有必要时,可以在 MailPlus Server > 邮件投递 > 安全性 中停用「拒绝未知 HELO 主机名」选项,通过禁用这个选项来关闭主机名检查。
为什么第三层放在最后
停用这个选项,等于对所有来源都取消这层校验——伪造主机名的垃圾投递也随之少了一道门槛。官方把它列为排障手段而非推荐配置,动它之前先把前两层走完,才不会为了放进来一封信,把整面墙拆掉。
这类带状态码的拒收日志,诚鑫致达科技遇到时的习惯是先当信使:把 DNS 排查位置转告发件方,确属长期合作来源才在自己这边落一条允许规则——分层动手,最轻的一层先用上。