현재 특정 보낸 사람의 모든 보내는 메일의 일부 헤더를 바꾸기 위해 Exchange 2007 전송 에이전트를 작성하고 있습니다. 나는 'From'SMTP 헤더를 성공적으로 대체 할 수 있었지만 'Return-Path'헤더를 다시 작성하는 것은 효과가없는 것 같습니다. Exchange 2007 전송 에이전트로 SMTP 헤더 편집
이 모두 일어날 수 있도록하기 위해, 나는 사용자 정의 SmtpReceiveAgent을 작성하고이 같은 OnEndOfData 이벤트에 가입 한 :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
}
}
실제로 리턴 경로 헤더를 변경하려고합니다. 나는 서버의 기본 동작을 재정의 할 방법을 찾고있다. 나는 또한 수송 규칙을 보았다. 그러나 그들은 나를 도울 수 없었다. –