Edición de un encabezado SMTP con un agente de transporte de Exchange 2007
-
16-09-2019 - |
Pregunta
Actualmente estoy escribiendo un agente de transporte de Exchange 2007 para reemplazar algunas cabeceras de todos los mensajes salientes de un remitente en particular. Me las arreglé para reemplazar el 'De' encabezado SMTP con éxito, pero la reescritura de la cabecera 'Return-Path' no parece funcionar.
Para que todo esto suceda, he escrito una costumbre SmtpReceiveAgent y suscribirse al evento OnEndOfData como esto:
private static void MyAgent_OnEndOfData(ReceiveMessageEventSource source, EndOfDataEventArgs e)
{
try
{
var address = e.MailItem.Message.From.SmtpAddress;
if (address.ToLower().EndsWith("[internal email domain]"))
{
// replace the From: header - WORKING FINE!
e.MailItem.Message.From = new EmailRecipient("[displayname]",
"[email address]");
// replace the Return-Path: header - NOT WORKING!
var headerList = e.MailItem.Message.RootPart.Headers;
var header = (AddressHeader)headerList.FindFirst("Return-Path");
var newheader = new AddressHeader("Return-Path") { Value = "[email address" };
headerList.ReplaceChild(newheader, header);
}
}
catch (Exception ex)
{
// do something useful here
}
}
Solución
Por el RFC, se supone que la cabecera Return-Path que será establecido por el servidor SMTP del destinatario. Si existe una cabecera Return-Path en el correo electrónico, que se va a quitar, y restablecida por el servidor del destinatario.
Tal vez lo que están viendo, es la aplicación correcta de los RFC.
Otros consejos
No estoy seguro, pero suena como es posible que desee ser el cambio de "responder" cabecera y no "-camino de retorno". "Ruta de retorno" está destinado a ser fijado por el servidor.