Exchange server 使用EWS管理的api转发电子邮件,保留邮件头

Exchange server 使用EWS管理的api转发电子邮件,保留邮件头,exchange-server,ews-managed-api,Exchange Server,Ews Managed Api,我正在寻找如何使用托管api转发现有电子邮件(已在我的收件箱中)的示例代码 转发时,在转发邮件时是否有办法保留原始邮件头? 例如,有人给我发送了一封电子邮件-我希望ews将其转发给另一个收件人,而无需更改邮件头(原始接收时间、密件抄送等)。对于EmailMessage对象,您只需调用CreateForwareMessage()方法: 关于另一个问题:获取邮件的MIME内容并将其附加到新邮件: item.Load(new PropertySet(BasePropertySet.IdOnly, It

我正在寻找如何使用托管api转发现有电子邮件(已在我的收件箱中)的示例代码

转发时,在转发邮件时是否有办法保留原始邮件头?
例如,有人给我发送了一封电子邮件-我希望ews将其转发给另一个收件人,而无需更改邮件头(原始接收时间、密件抄送等)。

对于EmailMessage对象,您只需调用CreateForwareMessage()方法:

关于另一个问题:获取邮件的MIME内容并将其附加到新邮件:

item.Load(new PropertySet(BasePropertySet.IdOnly, ItemSchema.MimeContent));
var mail = new EmailMessage(service);
var attachment = mail.Attachments.AddFileAttachment("Original message.eml", item.MimeContent.Content);
attachment.ContentType = string.Format("message/rfc822; charset={0}", item.MimeContent.CharacterSet);
mail.ToRecipients.Add("hkrause@infinitec.de");
mail.Subject = "testmail";
mail.SendAndSaveCopy();
编辑:

创建转发消息并将回复设置为标题:

var fw = item.CreateForward();
var fwMsg = fw.Save(WellKnownFolderName.Drafts);
fwMsg.ReplyTo.Add("personA@company.com");
fwMsg.SendAndSaveCopy();

谢谢hening,我正在寻找一种方法,让收到转发邮件的用户能够回复转发邮件的原始发件人。你是说你将邮件从a人转发到B人转发到C人,C人应该能够回复a人?当然,您可以让人员B创建新邮件并附加旧邮件,就像我在示例中所做的那样。否则,创建一条转发消息,并将reply to header设置为Person a。参见我的第三个示例。谢谢Henning,我考虑的是更简单的情况。让我告诉你,所有的场景都会简单得多-我为此开发了一个自定义代码:a人如果收到电子邮件,代码会按原样接收电子邮件并转发给b人b人应该看到电子邮件,就好像它是直接发送给他的一样-这样他就可以回复邮件中的同一个收件人,就像他们收到邮件时一样发送给收件人a。这里的关键是,人员b应该能够将邮件回复给相同的收件人,就像他是recipinet a一样。您可以通过设置ReplyTo属性来实现这一点,如我的示例中所述。另一种选择是将邮件复制到代表的收件箱。如果答案有帮助,请相应地标记答案。这将帮助其他有类似问题的乌瑟尔。
var fw = item.CreateForward();
var fwMsg = fw.Save(WellKnownFolderName.Drafts);
fwMsg.ReplyTo.Add("personA@company.com");
fwMsg.SendAndSaveCopy();