[英]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.