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



看起来MailItem.Message.ReplyTo属性是只读的。有人知道在Mailitem.Message中将ReplyTo设置为新地址的方法吗?

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

试试这样的东西(没有测试,只是我的想法!):

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类型的集合。

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

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

相关内容

  • 没有找到相关文章

最新更新