Транспортный агент Exchange 2010 — переписать заголовок Reply-To

Похоже, свойство MailItem.Message.ReplyTo доступно только для чтения. Кто-нибудь знает способ установить ReplyTo в Mailitem.Message на новый адрес?

Работа над транспортным агентом Exchange 2010 для решения некоторых проблем с dmarc в наших группах распределения Exchange 2010. Я могу изменить заголовок From и получить наше электронное письмо DG, но если бы заголовок ReplyTo мог быть отправлен на исходные адреса электронной почты, наши получатели могли бы ответить напрямую, а не копировать и вставлять исходный адрес электронной почты, который я добавляю в тело письма.


person Pete    schedule 11.10.2014    source источник


Ответы (2)


Попробуйте что-то вроде этого (не проверено, просто по моему мнению!):

MimeRecipient mmR = null; 
try { mmR = new MimeRecipient("John Doe", "[email protected]");} 
catch { }


Header hdrReplyTo = null;
try {hdrReplyTo = Hdrs.FindFirst(HeaderId.ReplyTo);} 
catch {}
if (null != hdrReplyTo)
{
    try 
    {
        MimeNode.Enumerator<MimeNode> enum1 = hdrReplyTo.GetEnumerator();
        try { enum1.MoveNext(); } 
        catch { }
        if (null != enum1.Current)
        { 
            try 
            {
                //delete old Reply-To               
                Hdrs.RemoveAll(HeaderId.From);
                //change From header
                hdrReplyTo.RemoveAll(); 
                hdrReplyTo.AppendChild(mmR);
                //create a new one
                Hdrs.AppendChild(hdrReplyTo); 
            } 
            catch { }
        }
    } 
    catch { }
}
person Victor Ivanidze    schedule 04.11.2014

Даже если этому вопросу уже более 2 лет, я опубликую свое решение (поскольку у меня была такая же проблема). Может поможет кому с такой же проблемой.

MailItem.Message.ReplyTo доступен только для чтения, это правильно, но только потому, что это коллекция типа Microsoft.Exchange.Data.Transport.Email.EmailRecipient.

Вы можете изменить коллекцию с помощью методов удаления/очистки и добавления. Используйте этот пример, чтобы удалить существующие адреса Reply-To и добавить новый:

e.MailItem.Message.ReplyTo.Clear();
e.MailItem.Message.ReplyTo.Add("[email protected]");
person David    schedule 13.07.2017