You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测并处理Sendmail中退信被回退的垃圾邮件服务器?

如何检测并处理Sendmail中退信被回退的垃圾邮件服务器?

老兄,这种循环退信的垃圾服务器确实够闹心的!我来给你分享几个经过实践验证的检测和处理办法:

一、先搞清楚怎么检测这类垃圾服务器

  • 分析邮件头+小测试实锤:打开退信的邮件头,重点看Return-Path、Received字段,定位源头服务器的IP和域名。这类垃圾服务器的典型特征是:只发邮件给你已删除的旧账号,自身完全拒收任何邮件——你可以随便编一个邮箱(比如test@垃圾服务器域名.com)发测试邮件,如果立刻被退回,基本就能实锤这是个只发不收的垃圾服务器了。
  • 扒Sendmail日志找线索:查看Sendmail的日志文件(一般是/var/log/mail.log或/var/log/sendmail.log),搜索包含status=bounced的记录,里面会有对方服务器的IP、HELO标识,还有具体的退信错误码(比如550 5.1.1 User unknown)。通过日志能快速锁定哪些IP在反复制造这种循环退信。

二、针对性的处理方案

  • 用Sendmail自带访问列表直接拉黑:编辑/etc/mail/access文件,把确认的垃圾IP或域名加进去,格式如下:
    192.168.xxx.xxx    REJECT
    spam-example.com   REJECT
    
    然后执行makemap hash /etc/mail/access < /etc/mail/access更新映射表,重启Sendmail就能生效。下次这个垃圾服务器发邮件过来会直接被拒收,从根源避免退信循环。
  • 配置Fail2ban自动拦截恶意IP:针对Sendmail的退信日志,自定义Fail2ban规则:
    1. 在/etc/fail2ban/filter.d/目录下新建sendmail-spam-bounce.conf,内容如下:
      [Definition]
      failregex = ^.*from=<.*> to=<.*> relay=.*\[<HOST>\].*status=bounced.*
      ignoreregex =
      
    2. 打开/etc/fail2ban/jail.local,添加这个jail配置:
      [sendmail-spam-bounce]
      enabled = true
      filter = sendmail-spam-bounce
      logpath = /var/log/mail.log
      maxretry = 3
      bantime = 86400
      
    3. 重启Fail2ban服务,这样同一个IP反复触发退信记录超过3次,就会被自动拉黑24小时(可以根据需求调整maxretry和bantime)。
  • 启用SPF记录减少垃圾邮件流入:给你的域名配置SPF记录,明确指定哪些服务器可以代表你的域名发邮件,拒绝其他未授权来源的邮件。虽然不能直接解决当前的循环退信,但能从源头降低这类垃圾邮件进入服务器的概率。

另外,如果遇到批量的未知垃圾服务器,还可以给Sendmail配置靠谱的DNSBL(域名黑名单)服务,比如Spamhaus的列表,这样大部分已知的垃圾IP会被自动拦截,省不少手动拉黑的功夫。

备注:内容来源于stack exchange,提问作者Hack Saw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:44:54