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

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

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

2 ответа

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

MimeRecipient mmR = null; 
try { mmR = new MimeRecipient("John Doe", "jdoe@yourdomain.com");} 
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 { }
}

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

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

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

e.MailItem.Message.ReplyTo.Clear();
e.MailItem.Message.ReplyTo.Add("reply-to@address.com");
Другие вопросы по тегам