发信域名信誉被降级,退信文件里大量 550 5.1.1 user unknown,很多地址是三年前从旧表单里导出的。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
grep '5.1.1' /var/log/mail.log > bounce.txt
awk '{print $7}' bounce.txt | sort -u | wc -l
长期向不存在的地址投递,硬退信率累积超过阈值,服务商据此判断名单质量差并降低投递优先级。这一点先确认清楚,后面就不用反复试。
「硬退信处理」这类改动最怕改一半,回滚脚本先准备好,再动生产。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。
具体做法是,按退信码把硬退与软退分开;把 5.1.1 的地址标记为失效;后续发送前先过滤一遍名单。
改完照着核一遍,硬退信率降到百分之二以下,名单里的失效地址清理干净。
