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

使用Postfix在邮件主题中添加源主机名

使用Postfix在邮件主题中添加源主机名

看起来你遇到的问题是header_checks规则写得不对导致没生效,我来帮你捋清楚问题出在哪,以及怎么修改才能实现给邮件主题加上源主机名的需求。

首先,先说说你当前配置里的几个问题:

  • 你的正则规则 /^Subject:$/ 只会匹配完全没有内容的主题行(也就是Subject:后面啥都没有的情况),绝大多数邮件都有实际的主题内容,所以这个规则根本不会被触发。
  • 规则里的$1没有对应的正则捕获组,因为你没在正则里用()捕获任何内容,就算规则触发了,替换后也只会显示[CUSTOM TEXT] ,带不上原主题。

接下来是正确的配置步骤:

1. 修改header_checks规则文件

打开/etc/postfix/header_checks,把原来的规则替换成下面的内容:

/^Subject:(.*)/ REPLACE Subject: [${myhostname}] $1
  • /^Subject:(.*)/ 会匹配所有带内容的主题行,并用(.*)捕获原主题的全部内容到$1里。
  • ${myhostname}是Postfix的内置宏,会自动替换成你的服务器主机名;如果想添加的是发件方的源主机名,可以换成${sender_hostname}(这个需要确保Postfix能正确获取到发件方主机信息)。

2. 调整main.cf配置

确保你的/etc/postfix/main.cf里有这两行配置:

header_checks = regexp:/etc/postfix/header_checks
expand_header_checks = yes

加上expand_header_checks = yes是为了让Postfix解析规则里的内置宏(比如${myhostname}),不然宏会被当成纯文本输出。

3. 重新加载Postfix配置

修改完配置后,执行下面的命令让Postfix生效:

postfix reload

测试验证

你可以用这条命令发一封测试邮件,看看主题是否被正确修改:

echo "这是测试邮件内容" | sendmail -s "原测试主题" your-test-email@example.com

收件后检查邮件主题,应该会变成[你的服务器主机名] 原测试主题。

如果还是有问题,可以查看Postfix的日志(/var/log/mail.log),看看有没有相关的错误提示,方便进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 14:38:20