首先需要了解一个概念,SPFTXT记录设置是用来为别人提供验证的,也就是给别人提供便利的,它对于我们自己来说只不过是提高了邮件机构对我们发出邮件的评分而已,它并不会给我们的邮件服务器带来“其他”的提升。如果想要发挥 SPF 更实质的作用,其实还是得需要本篇文章所介绍的配置才可以。
  1. 安装 SPF 的 SpamAssassin 来验证过滤垃圾邮件

    apt install postfix-policyd-spf-python
  2. 看看配置文件有没有需要调整的,我这里直接跳过,不做任何更改

    vi /etc/postfix-policyd-spf-python/policyd-spf.conf
  3. 配置master.cf来加载 SPF 模块

    vi /etc/postfix/master.cf

    末尾加上

    policyd-spf  unix  -       n       n       -       0       spawn     user=policyd-spf argv=/usr/bin/policyd-spf
  4. 配置main.cf来拒绝欺诈邮件

    vi /etc/postfix/main.cf

    给参数smtpd_recipient_restrictions增加参数

    check_policy_service unix:private/policyd-spf

    例如

    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unknown_sender_domain,reject_unknown_recipient_domain,reject_unauth_destination,check_policy_service unix:private/policyd-spf,permit_auth_destination,reject
    注意:在reject_unauth_destination之后指定check_policy_service,否则您的系统可能会成为开放中继。
  5. 增加参数来设置 SPF 验证超时时间

    policyd-spf_time_limit = 60
  6. 重启 postfix

    service postfix restart
    
自定义处理脚本
testfilter unix - n n - 0 spawn user=testuser argv=/usr/bin/php /path-to-scripts/filter-incoming-email.php

更多邮件处理也可以继续参考《Postfix 根据规则过滤邮件》