6

我想做的是:

为外发邮件设置 SMTP 中继,其中:
(a) All From: 标头被重写为“no-reply@example.com”
(b) 添加了带有原始 From: 地址的 Reply-To: 标头

我正在使用sender_cannoical_mapsheader_checks,每个内容如下:

sender_canonical_maps:

/.*/    no-reply@example.com

header_checks:

/^From:(.*)$/   PREPEND Reply-To:$1

但是当收到一条消息时,没有回复的地址包含在回复:字段中,这是我不想要的:

to:         end-user@example.com
from:       no-reply@example.com
reply-to:   no-reply@example.com, sender@domain.com

如果我将 header_checks 更改为使用 REPLACE 而不是 PREPEND 我会丢失被覆盖的原始发件人:

to:         end-user@example.com    
from:       no-reply@example.com
reply-to:   no-reply@example.com

所以我失去了 sender@domain.com。

我在这里做错了什么?并为任何缺乏信息提前道歉。

4

1 回答 1

1

如果header_sendersender_canonical_classes(默认)中,则 postfix 将在处理时重写 From 和 Reply-To 标头sender_cannonical_maps。所以header_check添加回复,然后sender_cannonical_maps重写回复。要保留您的回复,header_checks您需要

sender_canonical_classes = envelope_sender
sender_cannoical_maps = static:no-reply@example.com

但是,这会使 From 标头保持不变,但是您可以smtp_header_checks通过添加来重写它

smtp_header_checks = regex:/etc/postfix/smtp_header_checks

/etc/postfix/smtp_header_checks内容

/^From:(.*)$/   REPLACE From: no-reply@example.com
于 2021-08-17T14:44:15.233 回答