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

Postfix队列后内容过滤器完整示例及第24行过滤逻辑实现咨询

Postfix 简单内容过滤器可直接使用的实现示例

以下提供3种生产环境常用的过滤逻辑,可直接替换原脚本第24~26行使用,也可叠加多个逻辑组合使用。

常用过滤逻辑片段

1. 敏感关键词拦截

检测邮件主题、正文是否包含指定敏感词,匹配则直接拒收:

# 可自行修改/增加禁止关键词,多个关键词用|分隔,-i参数代表不区分大小写
grep -iE "敏感词1|敏感词2|赌博|诈骗" in.$$ >/dev/null && {
  echo "Message contains forbidden content, rejected"; exit $EX_UNAVAILABLE;
}

2. 危险附件后缀拦截

禁止exe、bat等可执行文件作为附件发送,降低病毒传播风险:

# 可自行添加需要禁止的附件后缀
grep -iE "filename=.*\.(exe|bat|js|vbs|cmd|scr|pif)" in.$$ >/dev/null && {
  echo "Message contains forbidden attachment type, rejected"; exit $EX_UNAVAILABLE;
}

3. 发件人黑名单拦截

拒收指定发件人地址的邮件:

# 可自行添加黑名单发件人地址
grep -iE "^From:.*(baduser1@example.com|baduser2@example.com)" in.$$ >/dev/null && {
  echo "Sender is in blacklist, rejected"; exit $EX_UNAVAILABLE;
}

完整整合版示例脚本

以下为整合了关键词+附件拦截逻辑的完整可运行脚本:

#!/bin/sh

# Simple shell-based filter. It is meant to be invoked as follows:
#       /path/to/script -f sender recipients...

# Localize these. The -G option does nothing before Postfix 2.3.
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.

# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15

# Start processing.
cd $INSPECT_DIR || {
    echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }

cat >in.$$ || { 
    echo Cannot save mail to file; exit $EX_TEMPFAIL; }

# ------------自定义过滤逻辑开始------------
# 1. 敏感关键词拦截
grep -iE "敏感词1|敏感词2|赌博|诈骗" in.$$ >/dev/null && {
  echo "Message contains forbidden content, rejected"; exit $EX_UNAVAILABLE;
}
# 2. 危险附件后缀拦截
grep -iE "filename=.*\.(exe|bat|js|vbs|cmd|scr|pif)" in.$$ >/dev/null && {
  echo "Message contains forbidden attachment type, rejected"; exit $EX_UNAVAILABLE;
}
# ------------自定义过滤逻辑结束------------

$SENDMAIL "$@" <in.$$

exit $?

部署注意事项

  • 需提前创建/var/spool/filter目录,权限设置为700,属主和属组设为postfix:postfix,确保postfix服务有权限读写
  • 脚本本身权限需设置为700,属主和属组同样设为postfix:postfix,避免被其他用户篡改
  • 可根据业务需求自行调整过滤规则,也可新增其他自定义过滤逻辑,多个逻辑按从上到下顺序校验,任意规则匹配就会直接拒收邮件

内容的提问来源于stack exchange,提问作者Byte legion

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:24:07