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

Postfix虚拟域环境下,smtp_header_checks中应使用哪个虚拟域变量生成出站邮件头?

Postfix虚拟域环境下,smtp_header_checks中应使用哪个虚拟域变量生成出站邮件头?

首先明确说:$mydomain不是你要找的正确变量。

在你的虚拟域环境里,全局没配置mydomain的话,Postfix会自动用服务器主机名的域名部分来填充这个变量——它指向的是Postfix服务器自身的域名,和发送邮件的虚拟域完全无关,用它的话所有邮件的List-Unsubscribe都会指向同一个固定域名,不符合你按发送域动态生成的需求。

正确的解决方案:使用$sender_domain变量

$sender_domain是Postfix专门用来提取发件人地址中域名部分的内置变量,正好匹配你的场景——不管是虚拟域用户、CLI发送还是第三方应用(比如PHP/MSMTP)发的邮件,它都会自动获取发件人对应的域名。

具体配置步骤如下:

  1. 确保main.cf里的smtp_header_checks配置正确:
    smtp_header_checks = regexp:/etc/postfix/smtp_header_checks
    
  2. 编辑/etc/postfix/smtp_header_checks,替换你之前的硬编码规则为:
    /^Content-Type:/i PREPEND List-Unsubscribe: mailto:unsubscribe@$sender_domain
    
  3. 重载Postfix配置使生效:
    postfix reload
    

测试验证

你可以用CLI发一封测试邮件验证效果:

echo "测试内容" | mail -s "动态头测试" test@example.com -r user@your-virtual-domain.tld

查看收到的邮件头,应该能看到List-Unsubscribe: mailto:unsubscribe@your-virtual-domain.tld,完美匹配发送域。

额外说明

这个方法的优势是覆盖所有出站邮件——不管邮件是从哪里发出来的,只要经过Postfix的SMTP处理流程,都会自动加上正确的List-Unsubscribe头,完全不需要修改应用或客户端代码,正好满足你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 16:19:42