6

What I am trying to do is:

Setup a SMTP relay for outgoing mail where:
(a) All From: headers are rewritten to be "no-reply@example.com"
(b) A Reply-To: header with the original From: address is added

I am using sender_cannoical_maps and header_checks, with the content of each as follows:

sender_canonical_maps:

/.*/    no-reply@example.com

header_checks:

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

But when a message is received, the no-reply address is included in the Reply-To: field, which I do not want:

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

If I change header_checks to use REPLACE instead of PREPEND I lose the original sender which is overwritten:

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

So I have lost sender@domain.com.

What I am doing wrong here? And apologies in advance for any lack of info.

pferg
  • 678
  • 7
  • 10

1 Answers1

2

If header_sender is in sender_canonical_classes (default) then postfix will rewrite both the From and Reply-To headers when processing sender_cannonical_maps. So the header_check adds the Reply-To and then the sender_cannonical_maps is rewriting the Reply-To. To keep your Reply-To added in header_checks you need

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

However this leave the From header unchanged, but you can rewrite it in smtp_header_checks by adding

smtp_header_checks = regex:/etc/postfix/smtp_header_checks

/etc/postfix/smtp_header_checks contents

/^From:(.*)$/   REPLACE From: no-reply@example.com
mklassen
  • 41
  • 4