Postfix no agrega: encabezado para correo saliente

Postfix no agrega: encabezado para correo saliente

He configurado una configuración básica de Postfix para enviar correo usando un servidor de retransmisión smtp externo y resolver el correo de dirección local a través de /etc/aliases. El envío de correo electrónico funciona (mediante el sendmailcomando). Sin embargo, cuando recibo el correo, To:falta el encabezado; no aparece en el mensaje de correo electrónico sin formato.

Pregunta:¿Cómo puedo hacer que To:aparezca el encabezado en el correo de recepción?

Más detalles

Por ejemplo, cuando envío esto desde la línea de comando:

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

o

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

con /etc/aliasestener una linearoot: [email protected]

Recibo el correo electrónico en ambos casos. Pero en ambos casos, el To:encabezado no está ahí.

El correo sin formato se ve así:

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

Lo que ya probé:

  • Enviar el correo a través de mailxSÍ inserta el encabezado Para:, por ejemploecho -e "Body message" | mailx root -s "Subject: test no header"

  • Ya intenté configurar always_add_missing_headers = yespero /etc/postfix/main.cfno ayuda.

Algunas partes relevantes (creo) de mi /etc/postfix/main.cfarchivo:

...
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

Respuesta1

No necesita ningún To:encabezado para que los mensajes se entreguen a su destino. Para ello sólo se utiliza el sobre SMTP.

A diferencia de la mailxherramienta, el sendmailcomando simple no es un cliente de correo completo.

El comando sendmail no creará un mensaje de correo con el formato adecuado, solo el sobre SMTP mínimo para garantizar una transmisión exitosa. Si desea un mensaje de correo electrónico con el formato adecuado, eso es lo que debe proporcionar al comando sendmail como entrada (estándar).

En otras palabras:

Debe proporcionar a sendmail un mensaje que consta de encabezados, cada encabezado en una nueva línea con dos puntos que separan el encabezado del valor del encabezado, con encabezados largos que continúan en la línea siguiente y comienzan con uno o más espacios. Luego, una línea vacía que separa los encabezados del mensaje del cuerpo. Luego el cuerpo del mensaje.

Algo como esto

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
.

Respuesta2

Cuando agrego siempre_add_missing_headers = sí, funciona para mí

información relacionada