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

Postfix配置阻止垃圾邮件发送者域名无效,请求排查解决

Postfix配置阻止垃圾邮件发送者域名无效,请求排查解决

嘿,我来帮你捋捋这个Postfix拦截失效的问题~

首先得揪出核心问题:你虽然在/etc/postfix/access里加了对stupidspammers.example的拦截,但Postfix默认不会自动用这个规则去检查发件人地址,得手动把规则加到主配置的对应限制项里才行。另外你提到邮件实际是从spamgateway.nil的子域发送过来的,光拦显示的From域名可能不够,还得针对真实发送服务器的域名做拦截。

具体修复步骤

  1. 修改Postfix主配置文件
    打开/etc/postfix/main.cf,找到smtpd_sender_restrictions配置项(如果没有就自己新增),把check_sender_access hash:/etc/postfix/access加进去,注意要放在允许类规则的前面,比如:

    smtpd_sender_restrictions =
        check_sender_access hash:/etc/postfix/access,
        permit_mynetworks,
        reject_unauth_destination
    

    这个配置是告诉Postfix:先检查发件人地址是否匹配access表的规则,再执行其他权限限制。

  2. 补充拦截真实发送域名
    既然邮件是从spamgateway.nil的子域发过来的,在/etc/postfix/access里追加一行,拦截整个发送域:

    stupidspammers.example REJECT
    *.spamgateway.nil REJECT
    

    这样不管是显示的发件人域名,还是真实发送的服务器子域,都会被拦截。

  3. 更新哈希表并重启Postfix
    执行以下命令让配置生效:

    sudo postmap hash:/etc/postfix/access
    sudo systemctl restart postfix
    
  4. 验证拦截是否生效

    • 用命令测试规则匹配情况:
      postmap -q stupidspammers.example hash:/etc/postfix/access
      postmap -q random.sub.spamgateway.nil hash:/etc/postfix/access
      
      如果返回REJECT,说明哈希表配置没问题。
    • 之后查看邮件日志/var/log/mail.log,看看有没有相关拦截记录,确认后续垃圾邮件被成功阻挡。

额外提醒

Postfix的规则顺序很关键,一定要把check_sender_access放在permit_mynetworks这类允许规则前面,不然允许规则会先触发,拦截就起不到作用了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 11:14:37