Temos uma configuração em que o postfix envia e-mails por meio do retransmissão do Amazon SES. Tudo está funcionando bem, exceto o e-mail.
Embora este tópico já tenha sido revelado pelo menos aqui e aqui , ainda existem alguns pontos que eu não posso envolver minha cabeça.
O problema é que o Amazon SES não envia e-mails, onde From:
não é verificado. Então, quando um endereço interno quer encaminhar para um externo e o remetente também é externo, o e-mail não será enviado.
Para resolver isso, atualmente usamos a seguinte configuração em main.cf
header_checks = regexp:/etc/postfix/first_header_checks
smtp_header_checks = regexp:/etc/postfix/second_header_checks
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
sender_canonical_classes = envelope_sender
smtpd_data_restrictions = check_sender_access pcre:/etc/postfix/sender_access
Com o first_header_checks
/^From:(\s)?(.*)/i PREPEND X-Original-From: $2
/^To:(\s)?(.*)$/i PREPEND X-Original-To: $2
second_header_checks
/^From:(.*)/i REPLACE From: <[email protected]>
sender_canonical
/.*/ [email protected]
sender_access
/(.*)/ prepend Reply-To: <$1>
Isso funciona muito bem para mensagens recebidas. [email protected] envia o e-mail para [email protected] e é encaminhado para [email protected]
Reply-To: <[email protected]>
X-Original-To: <[email protected]>
To: [email protected]
From: <[email protected]>
X-Original-From: <[email protected]>
O problema, isso também acontece para o correio de saída do servidor. Digamos que [email protected] envie um e-mail, o de reescrito para não responder e um Responder-Para será definido. Isso eu quero consertar. Os cabeçalhos de e-mail só devem ser reescritos para os e-mails recebidos que serão encaminhados .
Eu tentei usar expressões regulares como !/^From:(\s)?(.*@verified-domain\.com)/
, mas até agora sem sorte.