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

如何为特定用户绕过Postfix Milters?

如何为特定用户绕过Postfix Milters?

嘿,这个需求完全不用动milter的代码,Postfix本身就能通过配置实现,我给你分享两个实用的方案,都是配置层面的操作,上手很简单:

方案一:通过收件人访问表条件化禁用Milters

这是最直接高效的方法,利用Postfix的check_recipient_access规则,针对特定收件人临时覆盖全局的milter设置:

  1. 打开Postfix主配置文件/etc/postfix/main.cf,找到smtpd_recipient_restrictions配置段,在reject_unauth_destination之前添加check_recipient_access规则(位置很重要,确保收件人验证后触发):
smtpd_recipient_restrictions =
    permit_mynetworks
    check_recipient_access hash:/etc/postfix/skip_milter_recipients
    reject_unauth_destination
    # 保留你原有的其他规则,比如 permit_sasl_authenticated 之类的
  1. 创建/etc/postfix/skip_milter_recipients文件,在里面列出需要绕过milter的收件人,格式是收件人地址 + 制表符 + smtpd_milters=:
john@example.com    smtpd_milters=
support@example.com    smtpd_milters=
# 也支持域名通配,比如 @internal.example.com    smtpd_milters=
  1. 生成哈希映射表并重载Postfix配置,让修改生效:
postmap /etc/postfix/skip_milter_recipients
postfix reload

这样一来,当邮件的收件人匹配表中的条目时,Postfix会临时把smtpd_milters设为空值,直接绕过所有全局配置的milter;其他收件人的邮件则会正常走原有的milter流程,完全不冲突。

方案二:拆分SMTPD进程(适合复杂场景)

如果你的需求更复杂,比如需要给特定收件人搭配完全不同的邮件处理规则,也可以配置多个SMTPD监听进程:

  1. 打开/etc/postfix/master.cf,复制一份现有的smtp监听配置,修改端口和参数,去掉milter相关配置:
smtp      inet  n       -       y       -       -       smtpd
# 新增的跳过milter的专属进程
smtp_skip_milter inet  n       -       y       -       -       smtpd
  -o smtpd_milters=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject_unauth_destination,...(这里放适配这个进程的规则)
  1. 回到main.cf,用check_recipient_access把特定收件人的邮件路由到这个新进程:
    在skip_milter_recipients文件里添加:
vip@example.com    transport=smtp:[127.0.0.1]:<你给新进程设的端口>

不过这个方案相对复杂,除非你有额外的流程需求,否则方案一更推荐。

小提醒

  • 这个方法只对smtpd_milters(针对SMTP接收的外部邮件)生效;如果你配置了non_smtpd_milters(针对本地生成的邮件),可以用类似逻辑,在local_recipient_maps里设置non_smtpd_milters=。
  • 修改配置后一定要测试,比如给目标收件人发测试邮件,查看Postfix日志(/var/log/mail.log或/var/log/maillog)确认milter没有被调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:39:33