Postfix não adiciona: cabeçalho para mensagens de saída

Postfix não adiciona: cabeçalho para mensagens de saída

Eu configurei uma configuração básica do Postfix para enviar e-mails usando um relayhost smtp externo e resolver endereços de e-mail localmente via /etc/aliases. O envio de e-mail funciona (através do sendmailcomando). Porém, quando recebo o e-mail, To:falta o cabeçalho; ele não aparece na mensagem de email bruta.

Pergunta:Como posso fazer com que o To:cabeçalho apareça no e-mail recebido?

Mais detalhes

Por exemplo, quando envio isso pela linha de comando:

echo -e "Subject: test no header\n\nBody message" | sendmail [email protected]

ou

echo -e "Subject: test no header\n\nBody message" | sendmail root

com /etc/aliasester uma linharoot: [email protected]

Recebo o e-mail em ambos os casos. Mas em ambos os casos, o To:cabeçalho não está lá.

O e-mail bruto fica assim:

Return-Path: <[email protected]>
X-Envelope-To: [email protected]
X-Footer: aW5kaWdvbWVkLmNvbQ==
Received: from .....
Received: by ...  
Delivered-To: [email protected]
Received: by myhost.mydomain.com (Postfix, from userid 0)
    id 70CD8A03; Tue, 12 Jan 2021 14:48:16 +0100 (CET)
Subject: test no header
Message-Id: <[email protected]>
Date: Tue, 12 Jan 2021 14:48:16 +0100 (CET)
From: root <[email protected]>

Body message

O que eu já tentei:

  • Enviando o e-mail via mailxDOES insira o cabeçalho To:, por exemploecho -e "Body message" | mailx root -s "Subject: test no header"

  • Já tentei configurar always_add_missing_headers = yesmas /etc/postfix/main.cfnão adianta.

Algumas partes relevantes (eu acho) do meu /etc/postfix/main.cfarquivo:

...
append_dot_mydomain = no
...
# General
myhostname = myhost.mydomain.com
myorigin = myhost.mydomain.com
mydestination = $myhostname localhost.$mydomain localhost myhost
...
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
....
relayhost = mail.something.com:465

Responder1

Você não precisa de nenhum To:cabeçalho para que as mensagens sejam entregues ao seu destino. Apenas o envelope SMTP é usado para isso.

Ao contrário da mailxferramenta, o sendmailcomando simples não é um cliente de email completo.

O comando sendmail não criará uma mensagem de correio formatada corretamente, apenas o envelope SMTP mínimo para garantir uma transmissão bem-sucedida. Se você deseja uma mensagem de e-mail formatada corretamente, é isso que você precisa fornecer ao comando sendmail como entrada (padrão).

Em outras palavras:

Você precisa fornecer ao sendmail uma mensagem que consiste em cabeçalhos, cada cabeçalho em uma nova linha com dois pontos separando o cabeçalho do valor do cabeçalho, com cabeçalhos longos continuando na linha abaixo e começando com um ou mais espaços. Em seguida, uma linha vazia separando os cabeçalhos da mensagem do corpo. Em seguida, o corpo da mensagem.

Algo assim

To: [email protected]
Content-Type: text/plain; charset=us-ascii>
From: [email protected] (Hermanb)
Subject:  A very very long 
  subject header spanning multiple lines
Date: Tue, 12 Jan 20121 15:46:24 +0200

test test

More test text
.

Responder2

Quando adiciono Always_add_missing_headers = yes, funciona para mim

informação relacionada