¿Cómo hacer que Sendmail agregue un encabezado de destinatario(s) de sobre a todos los mensajes de correo electrónico entrantes?

¿Cómo hacer que Sendmail agregue un encabezado de destinatario(s) de sobre a todos los mensajes de correo electrónico entrantes?

Descargo de responsabilidad:He leído algunas de las preguntas y artículos aquí y en otros lugares que tratan sobre la reescritura de encabezados de Sendmail. No he encontrado una respuesta a la siguiente pregunta porque la otra pregunta se relaciona principalmente conreescribiendoencabezados (en lugar de agregarlos), y casi todos ellos se relacionan consalientemensajes y el sobreremitente(en lugar del destinatario del sobre).

Habiendo dicho ésto:

Estoy ejecutando un servidor de correo, usando Sendmail 8.14.4 en Debian jessie.

Hay algunas direcciones de destinatarios de correo electrónico que están asignadas a la misma cuenta de usuario de O/S. Cuando el usuario de O/S respectivo lee los mensajes, no puede determinar a qué dirección de correo electrónico se enviaron originalmente los mensajes.

Por lo tanto, me gustaría que Sendmail agregue un encabezado personalizado que contenga los destinatarios del sobre a todos los mensajes de correo electrónico entrantes.

Creo que podría explicar mejor mi problema con el ejemplo:

Supongamos que tengo dos direcciones de correo electrónico [email protected]y [email protected]. Ambos están asignados a la cuenta de usuario del sistema operativo offers. Esto funciona hasta ahora: el usuario de O/S offers, cuando recupera su correo electrónico, recibe todos los mensajes enviados a [email protected]y [email protected].

El problema ahora es que no puede determinar a qué dirección de correo electrónico se envió originalmente cada mensaje. Eso significa: aunque ve todos los mensajes que se enviaron a ambas direcciones de correo electrónico, no puede saber si un determinado mensaje se envió originalmente a [email protected]o a [email protected].

Por lo tanto, me gustaría agregar un encabezado personalizado a cada mensaje entrante, quizás algo así: X-Envelope-Recipient: <Original envelope recipient>.

¿Cuál sería la forma más sencilla de hacer esto?

Érase una vez, escribí algunas reglas personalizadas simples para Sendmail. Pero han pasado casi 15 años desde entonces, así que me gustaría evitar eso y espero que haya una solución fácil o que alguien pueda indicarme la dirección correcta. Para ser honesto, escribir un milter para resolver mi problema actualmente me parece más fácil que volver a aprender la sintaxis de las reglas de Sendmail...

EDITAR 1

Según lo solicitado por @AnFi, aquí está la definición del remitente de correo local de sendmail.cf:

Mlocal,         P=/usr/lib/sm.bin/mail.local, F=lsDFMAw5:/|@qPSXnz9, S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL,
                T=DNS/RFC822/SMTP,
                A=mail.local -l -h inbox

Respuesta1

Su pregunta es abordada por Sendmail.org FAQ 3.29

3.29 ¿Cómo puedo agregar un encabezado que especifique el destinatario real cuando varios usuarios de un dominio virtual van a un solo buzón?

Versión corta: utilice virtusertable y~offers/.procmailrc

tabla de usuarios virtuales:

[email protected]  offers+offer1
[email protected]  offers+offer2

~offers/.procmailrcdebería obtener "más detalles" en $1.
O
Puedes usar $h (establecido en +detalle) en encabezados personalizados

Advertencia: obtendrá/procesará dos copias de un mensaje dirigido a ambos [email protected]y[email protected]

Respuesta2

Lo que usted sugiere iría en contra del protocolo SMTP: existen razones legítimas para agregar direcciones al RCPT TOcomando a pesar de que no existen en los encabezados To:o , es decirCc:RFC 5321 7.2.Copias "ciegas" (el énfasis es mío):

Las direcciones que no aparecen en la sección del encabezado del mensaje pueden aparecer en los comandos RCPT a un servidor SMTP por varias razones. Los dos más comunes implican el uso de una dirección postal como "explosionador de listas" (una dirección única que se resuelve en varias direcciones) y la aparición de "copias ocultas". Especialmente cuando está presente más de un comando RCPT, y para evitar frustrar algunos de los propósitos de estos mecanismos,Los clientes y servidores SMTP NO DEBEN copiar el conjunto completo de argumentos del comando RCPT en la sección del encabezado, ya sea como parte de los campos del encabezado de seguimiento o como campos de encabezado informativos o de extensión privada.. Dado que esta regla a menudo se viola en la práctica y no se puede hacer cumplir, los sistemas de envío SMTP que conocen el uso de "bcc" PUEDEN resultar útiles para enviar cada copia oculta como una transacción de mensaje separada que contenga solo un único comando RCPT.

No existe una relación inherente entre las direcciones "inversas" (de comandos MAIL, SAML, etc.) o "directas" (RCPT) en la transacción SMTP ("sobre") y las direcciones en la sección del encabezado. Los sistemas receptores NO DEBEN intentar deducir dichas relaciones y utilizarlas para alterar la sección del encabezado del mensaje para su entrega. El popular Apparently-tocampo de encabezado es una violación de este principio, así como una fuente común de divulgación de información no intencionada y NO DEBE usarse.

El encabezado no recomendado Apparently-tose controla con la opción NoRecipientAction=action.

Establezca el comportamiento cuando no haya encabezados de destinatario ( To:o Cc:) Bcc:en el mensaje para actuar:

  • nonedeja el mensaje sin cambios,
  • add-toagrega un To:encabezado con los destinatarios del sobre,
  • add-apparently-toagrega un Apparently-To:encabezado con los destinatarios del sobre,
  • add-bccagrega un Bcc:encabezado vacío y
  • add-to-undisclosed agrega una lectura de encabezado 'To: undisclosed-recipients:;'.

Tenga en cuenta que normalmente la dirección del destinatario original ya está en el encabezado To:o . Cc:No debe modificarse al nombre de la cuenta de usuario offers, por lo que está oculto [email protected]o [email protected]está oculto. Reescribir encabezados se ha vuelto aún más peligroso ya que también podría romper las firmas DKIM. El único caso de uso razonable es la reescritura de direcciones para correo con origen local ( userto [email protected]).


Agregar una lista de todas RCPT TOlas direcciones violaría el protocolo, pero en realidad simplemente necesita laRCPT TOdirección original únicapara el usuario al que se entregó el correo. No sé cómo lograr esto con Sendmail, peroSufijo(con la configuración predeterminada)agrega unX-Original-To:encabezado que contiene exactamente eso y, además, un Delivered-To:encabezado que contiene el buzón de correo interno de destino ( [email protected]).

información relacionada