2011-03-14 22 views
31

Desde nuestra aplicación de rieles enviamos algunos correos electrónicos generados por el sistema con la dirección 'de' establecida en [email protected] Si estos rebotes son devueltos a nuestra dirección por nuestro servidor de correo. Sin embargo, lo que me gustaría hacer es no devolver los correos electrónicos devueltos a [email protected] sino a una dirección diferente, como [email protected]Establezca encabezados de correo electrónico para que los correos electrónicos devueltos vayan a una dirección específica

¿Hay algún encabezado o algo que pueda establecer en el correo electrónico que logre esto, sin tener que ir a investigar los caprichos de nuestro servidor de correo electrónico? Enviamos los correos utilizando exim en caso de que sea relevante.

aplausos, máximo

+1

(+1) buena pregunta. Como le fue ? –

+0

https://en.wikipedia.org/wiki/Variable_envelope_return_path se usa comúnmente con las direcciones From y envelope que difieren ... –

Respuesta

3

Aquí está la solución:

En el encabezado del correo electrónico puede configurar:

From: "From Name" <[email protected]> 
Reply-To: [email protected] 

Errors-To: <[email protected]> 
Return-Path: <[email protected]> 
+0

Ah, no he visto el encabezado Errors-To antes.Ya he probado Reply-To y Return-Path inútilmente. Lo intentaré ... –

+0

Eso tampoco funcionó Dmitriy (lo siento por la respuesta lenta). Puedo ver el encabezado Errors-To en el correo original, pero aún así rebota en la dirección from. –

+0

eso significa que estás haciendo algo mal. Verifique los encabezados de los correos salientes. Return-Path, Errors-To: y también "envelope-from" y "X-Env-Sender:" deben tener la misma dirección de correo electrónico (donde desea enrutar los correos electrónicos devueltos). Los últimos 2 elementos se agregan automáticamente por el servidor . La sensibilidad de mayúsculas y minúsculas (las cadenas en el encabezado deben ser exactamente como en mi ejemplo de código). Atentamente. –

4

Errores-A está en desuso, por lo que los servidores de correo normalmente ignorará esta cabecera - la mayoría de los servidores rebotan al "remitente de sobre".

Esta es la dirección de correo electrónico que su cliente de correo envía como parte del servidor the connection to the SMTP (no necesariamente la dirección De, aunque normalmente es la misma).

No sé Rieles todo muy bien, pero encontré this - aunque, por lo que puedo decir, MTA restablece la ruta de retorno para que coincida con la información de MAIL FROM del cliente, por lo que parece que puede ' t en realidad lo configuró.

Creo que lo único que puede hacer es establecer la dirección de rebote en su servidor.

+0

Gracias Horuskol: ¿los proveedores de correo realmente honrarían esa dirección de rebote? Pensé que tendían a ignorar todo y siempre enviar rebotes a la dirección de. –

+0

@MaxWilliams - Sí, probablemente ahora mismo lo pienso más – HorusKol

9

Acabo de descifrar esto en exim4 después de un lote de leer sobre la configuración exim.

En primer lugar, usted quiere que su aplicación agregue el siguiente encabezado:

Return-Path: <[email protected]> 

funciona con o sin soportes. Exim agregará corchetes al final de cualquier manera.

En segundo lugar, esta fue la parte difícil. Exim siempre quiso anular mi dirección Return-Path: con el usuario de Unix que lo envió. Puede usar/etc/email-addresses en Ubuntu para establecer un correo electrónico estático para el usuario de su aplicación web, pero esto aún ignora el encabezado Return-Path. Aquí es cómo he modificado mi config exim a respetar el Return-Path desde la aplicación web:

En el área de configuración principal añadir:

return_path_remove = false 

En la configuración del router apropiado (por ejemplo dnslookup):

dnslookup: 
    # ... 
    errors_to = ${if def:h_return-path: {${address:$h_return-path:}} fail} 
    headers_remove = return-path 
    no_more 

Ahora exim debe copiar la dirección del encabezado Return-Path en el nivel del sobre y eliminar el encabezado Return-Path original.

He intentado muchas otras directivas de configuración y esta es la única forma que realmente funcionó para mí.

+7

Esto no debería funcionar. No porque no hayas descubierto cómo configurar Return Path en Exim, sino porque será reemplazado por el servidor SMTP de entrega. De RFC 5321 Sección 4.4: "Cuando el servidor SMTP de entrega realiza la entrega final" de un mensaje, inserta una línea de ruta de retorno al comienzo de los datos de correo. Este uso de la ruta de retorno es obligatorio; los sistemas de correo DEBEN respaldarlo La línea de ruta de retorno conserva la información en del comando MAIL ". –

3

3 años demasiado tarde, pero por si acaso alguien más viene por este camino. Return-Path es el encabezado correcto pero, como James Garriss señaló anteriormente, tiene que ser colocado allí por el sitio que realiza la entrega final. No puedes simplemente quedarte en ti mismo.

Si está escribiendo correos electrónicos conectándose directamente a un servidor SMTP, entonces esto es fácil: el comando MAIL contiene la ruta de retorno. Si envía

MAIL FROM:<[email protected]> 

al servidor SMTP y luego rebota serán devueltos a [email protected].

Si no está construyendo SMTP, y está ejecutando un MTA (es decir, exim/etc), entonces tiene que encontrar un modificador de línea de comandos para su MTA. Para sendmail, -f [email protected] "establece la dirección del remitente", y esto termina como el Return-Path en el correo final entregado, y [email protected] recibirá los rebotes (hago exactamente esto para correos electrónicos autogenerados). No he intentado esto en exim, pero tiene exactamente la misma opción, y debería funcionar. cabecera

+0

gracias por este EML. ¿Puedo establecer que la dirección de devolución 'fallida 'sea diferente a la dirección' from' utilizando este método? –

+0

@MW: sí, no hay problema, son cosas diferentes. Simplemente configure 'From:' en sus encabezados como desee que el destinatario lo vea, y configure la dirección '-f' (es decir, la dirección 'envelope'/etc) según se requiera para los rebotes. Una advertencia: el MTA podría sospechar una violación de seguridad e insertar un encabezado adicional en el correo electrónico recibido ('X-Authentication-Warning') para advertir al destinatario. Esto depende de su configuración exacta de MTA. El libro de sendmail tiene una página completa para evitar esto. Si los destinatarios ven este encabezado y quieres deshacerte de él, probablemente deberías hacer otra pregunta. – EML

+0

La ruta de retorno es solo informativa. cuando se recibe el mensaje, le dice al destinatario dónde habría salido un rebote. en realidad no hace nada. como se dice '-f' después de'/usr/lib/sendmail' para enviar el remitente es la respuesta correcta. algunas implementaciones de '/ usr/lib/sendmail' pueden interpretar un encabezado 'return-path' como equivalente. – Jasen

2

Return-Path está escrito por el servidor de recepción , no por el servidor de envío. Y según el RFC 5321, es lo mismo que la dirección suministrada en el comando MAIL FROM.

Incluso si configura el encabezado Return-Path usted mismo, el servidor receptor sobrescribirá eso.

Ahora, aquí está la cosa, la dirección en el comando MAIL FROM y la dirección en el encabezado From pueden ser diferentes. El usuario que recibe no ve la dirección MAIL FROM. Solo ven la dirección del encabezado From.

Por lo tanto, si desea ignorar los rebotes o desea que vayan a una dirección específica, debe usar esa dirección en el comando MAIL FROM.

Pero en el encabezado From, puede simplemente usar [email protected] - el usuario verá esta dirección.


Para simplificar un poco más, se envía el correo electrónico de [email protected] dirección. El servidor receptor enviará los rebotes a esta dirección.

para mostrar su usuario la dirección en lugar de handle_bounce... dirección [email protected], establecer la cabecera From en el mensaje de correo electrónico MIME prima para la dirección de noreply....


Hace poco recibí un sin respuesta correo electrónico de Bitbucket. Este es el mensaje prima:

Return-Path: <[email protected]r.atlassian.com> 
From: "Atlassian Bitbucket" <[email protected]> 
To: <[email protected]> 
Subject: Continuous delivery, without the headache. 
Date: Wed, 28 Feb 2018 12:40:53 -0600 
MIME-Version: 1.0 
Reply-To: "Atlassian Bitbucket" <[email protected]mailer.atlassian.com> 

... message body ... 

Como se puede ver, el Return-Path es una dirección dedicada para manejar rebotes. Pero la dirección From es un correo [email protected]. Lo que eso significa es que este correo electrónico en realidad fue enviado por esta dirección de manejo de rebote, no por la dirección noreply.

También puede ver el encabezado Reply-To, que está dedicado a manejar respuestas, si un usuario responde a correos electrónicos sin respuesta. Esas respuestas probablemente sean descartadas de inmediato.

Cuestiones relacionadas