看起来 MailItem.Message.ReplyTo 属性是只读的。任何人都知道将Mailitem.Message 中的ReplyTo 设置为新地址的方法吗?
使用 Exchange 2010 传输代理处理我们的 Exchange 2010 通讯组的一些 dmarc 问题。我可以更改 From 标头并发送我们的 DG 电子邮件,但如果可以将 ReplyTo 标头更改为原始电子邮件地址,我们的收件人将能够直接回复,而不必复制并粘贴我添加到的原始电子邮件地址电子邮件的正文。
看起来 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
是只读的,这是正确的,但只是因为它是 type 的集合Microsoft.Exchange.Data.Transport.Email.EmailRecipient
。
您可以使用删除/清除和添加方法修改集合。使用此示例删除现有的回复地址并添加一个新地址:
e.MailItem.Message.ReplyTo.Clear();
e.MailItem.Message.ReplyTo.Add("reply-to@address.com");