【问题标题】:Forward email using EWS managed api keeping the headers使用 EWS 托管 api 转发电子邮件,保留标头
【发布时间】:2011-12-05 16:24:14
【问题描述】:

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

转发时是否有某种方法可以在转发邮件时保留邮件的原始标题? 例如,有人向我发送了一封电子邮件 - 我希望 ews 将其转发给另一个收件人而不更改标题(原始接收时间来自 ,bcc 等...)。

【问题讨论】:

    标签: exchange-server ews-managed-api


    【解决方案1】:

    给定一个 EmailMessage 对象,您只需调用 CreateForwareMessage() 方法:

    var forwareMessage = item.CreateForward();
    

    关于另一个问题:获取邮件的 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 创建新邮件并附加旧邮件来做到这一点,就像我在示例中所做的那样。否则,创建转发消息并将回复标头设置为人员 A。请参阅我的第三个示例。
    • 感谢 Henning,我正在考虑更简单的案例。让我告诉你所有情况,这将更容易 - 我为此目的开发自定义代码: 人 a 是他收到电子邮件 代码按原样接收电子邮件并将其转发给人 b 人 b 应该看到电子邮件,好像它是直接发送给他的——所以他可以回复发送给收件人 a 时消息中的同一收件人。这里的关键是人 b 应该能够将消息回复给相同的收件人,就像他是收件人 a 一样。
    • 好吧,您可以通过设置ReplyTo 属性来实现,如我的示例中所述。另一种选择是将邮件复制到代表的收件箱。
    • 如果答案有帮助,请相应地标记答案。这将帮助其他有类似问题的人。
    猜你喜欢
    • 2017-05-04
    • 2013-08-25
    • 2015-11-30
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    相关资源
    最近更新 更多