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

如何阻止发件人为自身邮箱地址的垃圾邮件?(Postfix/Dovecot自建邮件服务器环境)

如何阻止发件人为自身邮箱地址的垃圾邮件?(Postfix/Dovecot自建邮件服务器环境)

嘿,我之前也碰到过这种糟心的情况——垃圾邮件伪装成自己给自己发,防不胜防!看了你的邮件头和配置,发现几个关键问题,咱们一步步来解决:

首先你得注意:这些垃圾邮件的Return-Path是空的(也就是Envelope Sender为空),而你设置的SPF是针对自己域名的发件人,但SPF默认检查的是Envelope Sender,不是邮件头里的From,所以这类伪造From的邮件根本触发不了你的SPF规则,这就是为啥之前的policy service没起作用。

给你几个实用的配置方案:

1. 限制只有授权用户才能用你的域名发件

咱们先确保只有你自己(通过Dovecot SASL认证)或者你的服务器能以me@mydomain.com的身份发邮件,外部IP直接拒绝:

  • 创建一个发件人访问控制文件/etc/postfix/sender_access,内容如下:
    me@mydomain.com    reject_unauth_destination
    
  • 执行postmap /etc/postfix/sender_access生成哈希表
  • 打开/etc/postfix/main.cf,修改smtpd_sender_restrictions,把这个检查加进去:
    smtpd_sender_restrictions =
        reject_non_fqdn_sender,
        reject_unknown_sender_domain,
        check_sender_access hash:/etc/postfix/sender_access,
        permit_sasl_authenticated,
        permit_mynetworks,
        reject
    
    这个规则的意思是:如果发件人是你的邮箱,但发件方没有经过授权(既不是你登录认证的,也不是你的内网服务器),直接拒绝。

2. 拦截伪造From且Envelope Sender为空的垃圾邮件

针对那些伪造你邮箱作为From,但实际没有合法发件人的邮件(Return-Path为空),咱们用Postfix的header_checks来拦截:

  • 创建/etc/postfix/header_checks文件,添加规则:
    /^From:.*<me@mydomain.com>$/   check_sender_access hash:/etc/postfix/sender_access_for_from
    
  • 再创建/etc/postfix/sender_access_for_from文件:
    <>    reject
    
  • 分别执行postmap /etc/postfix/header_checks和postmap /etc/postfix/sender_access_for_from
  • 在main.cf里添加启用这个检查:
    header_checks = regexp:/etc/postfix/header_checks
    
    这样一来,只要邮件头里的From是你的邮箱,但实际发件人是空的,直接就被拦下来了。

3. 完善SPF和启用DMARC/DKIM

你的SPF记录已经有了,但建议补充DKIM签名(在Postfix里配置opendkim插件),然后给域名加一条DMARC记录:

v=DMARC1; p=quarantine; sp=quarantine; rua=mailto:dmarc@mydomain.com

DMARC会强制接收方检查SPF和DKIM,任何伪造你域名的邮件如果通不过这两项验证,要么被隔离要么直接拒绝,从根源上减少伪造邮件的可能性。

4. 调整smtpd_recipient_restrictions的顺序

确保你的check_policy_service放在合适的位置,建议顺序是:

smtpd_recipient_restrictions =
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    permit_sasl_authenticated,
    permit_mynetworks,
    check_policy_service unix:private/policy,
    check_spf,
    permit_auth_destination,
    reject

先处理明显的无效收件人,再允许授权用户,然后检查policy和SPF,最后拒绝其他所有邮件。

改完这些配置后,记得执行postfix reload让配置生效,观察几天应该就能解决这种伪造自己邮箱的垃圾邮件了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:29:10