如何配置 postfix 强制 From: 字段但保留 Reply-To: 单独

unk*_*ulu 3 email postfix

我需要在本地主机上配置 postfix 作为 smtp 服务器的中继。此外部 smtp 服务器要求From:标头与经过身份验证的用户名一致。我想修复From:源自此本地计算机的所有消息的标头authenticated@example.com

我尝试了以下方法:

  1. sender_canonical_maps 问题是:它似乎Reply-To:也覆盖了标头,我不需要这个,相反,我想广泛使用它。

我是如何检查的:

  • 放入sender_canonical_maps = regexp:/etc/postfix/sender_canonicalmain.cf
  • REPLYTO="some.addr@gmail.com" mail my_addr@gmail.com
  • 实际结果:收到的消息已覆盖Reply-Toauthenticated@example.com

对比:

  • sender_canonical_maps从 main.cf 中删除
  • REPLYTO="some.addr@gmail.com" mail -r authenticated@example.com my_addr@gmail.com
  • 实际结果:收到的消息正确Reply-To

问题是如果没有-r authenticated@example.com.

  1. header_checks:显然不适用于From:字段(http://www.postfix.org/header_checks.5.html请参阅错误:部分)

如何简单地From:在所有外发邮件上强制标头,而不Reply-To:让本地用户指定?

Yar*_*Dot 6

postfix 通过 smtp 中继时强制发件人地址

/etc/postfix/main.cf:

smtp_header_checks = regexp:/etc/postfix/header_check
Run Code Online (Sandbox Code Playgroud)

/etc/postfix/header_check:

/^From:.*/ REPLACE From: newsender@example.com
Run Code Online (Sandbox Code Playgroud)

测试用:

mail -s test -a 'Reply-To: a@domain.tld' me@me.com <<< test
Run Code Online (Sandbox Code Playgroud)

客户端的标头:

From: newsender@example.com
Reply-To: a@domain.tld
To: <me@me.com>
Run Code Online (Sandbox Code Playgroud)

在系统日志中你会看到

Nov  1 17:20:50 huuu postfix/smtp[4716]: 1B65481FAB18: replace: header From: root@huuu (root): From: newsender@example.com
Run Code Online (Sandbox Code Playgroud)