
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 sendmail
comando). 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/aliases
ter 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
mailx
DOES insira o cabeçalho To:, por exemploecho -e "Body message" | mailx root -s "Subject: test no header"
Já tentei configurar
always_add_missing_headers = yes
mas/etc/postfix/main.cf
não adianta.
Algumas partes relevantes (eu acho) do meu /etc/postfix/main.cf
arquivo:
...
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 mailx
ferramenta, o sendmail
comando 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