Транспортный агент 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");