如何使用EWS托管API保存ItemAttachments

时间:2013-02-01 11:48:24

标签: c# exchangewebservices ews-managed-api

是否可以保存ItemAttachment?对于FileAttachment,我们使用以下EWS托管API代码进行保存,

   if(attachment is FileAttachment)
    {
      FileAttachment fAttachment = new FileAttachment();
      fAttachment.Load("D:\\Stream" + fAttachment.Name);
    }

For ItemAttachment怎么样?我们如何在指定的文件中保存这样的ItemAttachment

1 个答案:

答案 0 :(得分:10)

当然这不是一个紧迫的问题,但我想我会分享那些在将来偶然发现这一点的人。

对于ItemAttachments,你需要加载项目的MimeContent,然后你可以简单地写入文件/输出[“.eml”,“。msg”]:

if (attachment is FileAttachment)
{
    FileAttachment fileAttachment = attachment as FileAttachment;

    // Load attachment contents into a file.
    fileAttachment.Load(<file path>);
}
else // Attachment is an ItemAttachment (Email)
{
    ItemAttachment itemAttachment = attachment as ItemAttachment;

    // Load Item with additionalProperties of MimeContent
    itemAttachment.Load(EmailMessageSchema.MimeContent);

    // MimeContent.Content will give you the byte[] for the ItemAttachment
    // Now all you have to do is write the byte[] to a file
    File.WriteAllBytes(<file path>, itemAttachment.Item.MimeContent.Content);
}