Exchange server Exchange 2010传输代理-重写对标头的答复

Exchange server Exchange 2010传输代理-重写对标头的答复,exchange-server,mailitem,exchange-transport-agents,Exchange Server,Mailitem,Exchange Transport Agents,看起来MailItem.Message.ReplyTo属性是只读的。有人知道如何将邮件中的ReplyTo设置为新地址吗 正在使用Exchange 2010传输代理处理Exchange 2010通讯组的一些dmarc问题。我可以更改From标题并发送DG电子邮件,但如果可以将ReplyTo标题更改为原始电子邮件地址,我们的收件人将能够直接回复,而不必复制并粘贴我添加到电子邮件正文中的原始电子邮件地址 试试这样的方法(不是经过测试,只是我的想法!) MimeRecipient mmR=null; 试

看起来MailItem.Message.ReplyTo属性是只读的。有人知道如何将邮件中的ReplyTo设置为新地址吗

正在使用Exchange 2010传输代理处理Exchange 2010通讯组的一些dmarc问题。我可以更改From标题并发送DG电子邮件,但如果可以将ReplyTo标题更改为原始电子邮件地址,我们的收件人将能够直接回复,而不必复制并粘贴我添加到电子邮件正文中的原始电子邮件地址

试试这样的方法(不是经过测试,只是我的想法!)

MimeRecipient mmR=null;
试试{mmR=new MimeRecipient(“John Doe”,”jdoe@yourdomain.com");} 
捕获{}
标题hdrReplyTo=null;
请尝试{hdrReplyTo=Hdrs.FindFirst(HeaderId.ReplyTo);}
捕获{}
if(null!=hdrReplyTo)
{
尝试
{
MimeNode.Enumerator enum1=hdrReplyTo.GetEnumerator();
请尝试{enum1.MoveNext();}
捕获{}
if(null!=enum1.Current)
{ 
尝试
{
//删除旧的答复
Hdrs.RemoveAll(HeaderId.From);
//从标题更改
hdrReplyTo.RemoveAll();
hdrReplyTo.AppendChild(mmR);
//创建一个新的
Hdrs.AppendChild(hdrReplyTo);
} 
捕获{}
}
} 
捕获{}
}

即使这个问题已经存在2年多了,我也会发布我的解决方案(因为我自己也有同样的问题)。也许它能帮助有同样问题的人

MailItem.Message.ReplyTo
是只读的,这是正确的,但只是因为它是Microsoft.Exchange.Data.Transport.Email.EmailRecipient类型的集合

可以使用remove/clear和add方法修改集合。使用此示例可删除现有回复地址并添加新地址:

e.MailItem.Message.ReplyTo.Clear();
e.MailItem.Message.ReplyTo.Add("reply-to@address.com");
e.MailItem.Message.ReplyTo.Clear();
e.MailItem.Message.ReplyTo.Add("reply-to@address.com");