Редактирование заголовка SMTP с помощью транспортного агента Exchange 2007

StackOverflow https://stackoverflow.com/questions/1673752

Вопрос

В настоящее время я пишу транспортный агент Exchange 2007 для замены некоторых заголовков во всех исходящих письмах от определенного отправителя.Мне удалось успешно заменить заголовок SMTP 'From', но перезапись заголовка 'Return-Path', похоже, не работает.

Чтобы все это произошло, я написал пользовательский 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
            }

        }
Это было полезно?

Решение

Согласно RFC, заголовок Return-Path должен быть установлен SMTP-сервером получателя.Если в электронном письме существует заголовок Обратного пути, он должен быть удален и сброшен сервером получателя.

Возможно, то, что вы видите, является правильной реализацией RFC.

Другие советы

Я не уверен, но похоже, что вы, возможно, захотите изменить заголовок "reply-to", а не "return-path"."обратный путь" предназначен для установки сервером.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top