0

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

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

4

2 回答 2

0

尝试这样的事情(未经测试,只是我的想法!):

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 { }
}
于 2014-11-04T18:20:56.640 回答
0

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

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

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

e.MailItem.Message.ReplyTo.Clear();
e.MailItem.Message.ReplyTo.Add("reply-to@address.com");
于 2017-07-13T12:32:09.703 回答