簡體   English   中英

Exchange 2010傳輸代理-重寫Reply-To標頭

[英]Exchange 2010 Transport Agent - Rewrite Reply-To header

看起來MailItem.Message.ReplyTo屬性是只讀的。 有人知道將Mailitem.Message中的ReplyTo設置為新地址的方法嗎?

在Exchange 2010傳輸代理上工作,以與我們的Exchange 2010通訊組一起處理某些dmarc問題。 我可以更改From標頭並發送我們的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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM