Parece que seu objetivo inicial com header_checks
é preservar o remetente original e substituí-lo pelo remetente permitido do Amazon SES.
O problema da sua abordagem acima é o De: cabeçalho tornar-se não padrão por causa de várias citações lá.
From: " "User" <[email protected]>" <[email protected]>
Daniel R. Tobias mencionou esta questão em seu artigo: Site do Formato de Correio de Dan | Cabeçalhos | De / para / CC / BCC
One thing that will put you at risk of having your mail program inflict nonstandard header lines on your messages is to attempt to include quotation marks within your name, like Jesse "The Body" Ventura. If inserted directly into the header, within double quotes, you'd get "Jesse "The Body" Ventura", which actually parses into two quoted strings, "Jesse " and " Ventura", with The Body sitting in the middle with uncertain purpose.
Assim, você pode confiar nesse cabeçalho não padrão para ignorar o verificador do Amazon SES.
Uma abordagem para resolver esse problema é dividir as duas metas acima em dois header_checks, header_checks
e smtp_header_checks
. O primeiro header_checks preservará o remetente original em outro cabeçalho personalizado (por exemplo, X-Original-From). O segundo substituirá o cabeçalho De: .
#main.cf
header_checks = pcre:/etc/postfix/first_header_checks
smtp_header_checks = pcre:/etc/postfix/second_header_checks
#first_header_checks
/^From:(.*)/ PREPEND X-Original-From: $1
#second_header_checks
/^From:(.*)/ REPLACE From: <[email protected]>
Por causa desse esquema, o cabeçalho X-Original-From: será adicionado em todos os e-mails recebidos. Mas a ação de substituição será executada apenas no email de saída.
Outra maneira é usar o pcre para excluir a cotação no cabeçalho original: De: . Infelizmente, não tenho tempo para testar algumas ideias agora. Talvez mais tarde ... Vou atualizar essa resposta com outra solução alternativa.
O endereço do remetente do envelope está sendo reescrito
As partes acima ainda são meia jornada. Para passar o Amazon SES, você também precisa reescrever o endereço do remetente do envelope.
With the exception of addresses containing labels (see below), you must verify each email address (or the domain of the email address) that you will use as a "From" or "Return-Path" address for your messages. Until your account is out of the Amazon SES sandbox, you must also verify the email address of every recipient except for the recipients provided by the Amazon SES mailbox simulator.
Veja as diferenças entre Endereço do envelope vs. Endereço do cabeçalho da mensagem em este artigo .
Expliquei alguns passos para reescrever o remetente neste tópico semelhante: Erro de AWS SES: "Endereço de email não verificado" com Relé de postfix . Basicamente você precisa colocar este parâmetro em main.cf
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
sender_canonical_classes = envelope_sender
smtpd_data_restrictions = check_sender_access pcre:/etc/postfix/sender_access
Em / etc / postfix / sender_canonical, adicione
/.*/ [email protected]
Em / etc / postfix / sender_access, adicione
/(.*)/ prepend X-Envelope-MailFrom: <$1>
O /etc/postfix/sender_access
é usado para preservar o endereço do remetente do envelope original.