公司用的邮件服务器最近老是收发延迟,偶尔还弹出退信提示。起初以为是网络问题,换了几条线路还是不行,最后只能自己动手查原因。
问题初现:用户投诉开始堆积
最先发现问题的是销售部。他们每天要发几十封报价单,突然有天接连收到退信通知,内容写着‘mailbox unavailable’。技术支持一查,发现是对方没拒收,而是我们自己的服务器在连接时被标记为高风险源。
日志里藏着真相
登录到Postfix服务器,翻看 /var/log/mail.log,发现大量类似这样的记录:
connect to gmail-smtp-in.l.google.com[142.250.153.27]:25: Connection refused
再往下翻,看到频繁的反向DNS验证失败。原来最近IP被拉入了几个公共黑名单(比如Spamhaus),导致主流邮箱服务商直接拒连。
临时应对与长期调整
第一步先去各个黑名单官网提交解封申请,通常要等几小时到一天。同时检查了服务器的SPF记录,发现漏加了一条子网段:
v=spf1 ip4:192.168.100.0/24 -all
修正后更新DNS,并补上了DKIM和DMARC配置。这一步做完,外发邮件的投递率明显回升。
日常巡检该看什么
现在每周都会跑一遍基础检查清单:
- 队列是否有积压(mailq命令)
- 磁盘空间是否充足,特别是 /var/spool/postfix
- 是否有异常高频发送账户(可能是被盗用)
- TLS证书有没有快到期
有一次就是靠这个习惯发现了某个测试账号被用来批量发推广信,及时切断避免了IP再次进黑榜。
自动化帮了大忙
后来写了个小脚本,每天早上8点自动发一封状态报告,包含队列数量、最近错误摘要和资源使用情况。用cron定时执行:
0 8 * * * /usr/local/bin/mail-monitor.sh
遇到突发问题,也能第一时间收到告警,不至于等到用户来催才反应。
邮件服务器不像网站,出了问题不会立刻报警,但影响更隐蔽也更持久。维护它更像是养一辆老车,定期换机油、查胎压,看着不起眼,哪天忘了做,可能就半路抛锚了。