1

我正在使用 EWS JAVA API 1.2,但使用此代码保存 ItemAttachment 时遇到问题。

if(attachmentsCol.getPropertyAtIndex(i) instanceof FileAttachment) 
{
    ...
}
else
{
    ItemAttachment attachment = (ItemAttachment)attachmentsCol.getPropertyAtIndex(i);                                          
    attachment.load();
    Item item = attachment.getItem();
    item.load(newPropertySet(ItemSchema.MimeContent));`
    MimeContent Itemmc = item.getMimeContent();
    ....
} 

item.load(....)返回此错误

microsoft.exchange.webservices.data.InvalidOperationException:无法执行此操作,因为此服务对象没有 Id。

谢谢您的帮助。

4

1 回答 1

1

您不能对 ItemAttachment 本身进行加载,因为这将尝试执行对附件无效的 GetItem 请求。您需要做的是在 Attachment.load() 上包含一个带有 Mime 内容的属性集,例如

                foreach (var item in findResults.Items)
                {
                    foreach (Attachment Attach in item.Attachments) {
                        if (Attach is ItemAttachment) {
                            PropertySet psProp = new PropertySet(BasePropertySet.FirstClassProperties);
                            psProp.Add(ItemSchema.MimeContent);
                            ((ItemAttachment)Attach).Load(psProp);
                            if (((ItemAttachment)Attach).Item.MimeContent != null)
                            {
                                System.IO.File.WriteAllBytes("c:\\temp\\file.eml", ((ItemAttachment)Attach).Item.MimeContent.Content);
                            }                               
                        }
                    }                      

干杯格伦

于 2014-10-03T04:30:45.633 回答