使用Office 365 REST API无法获取项目附件

问题描述:

我正在使用Office 365 REST API获取邮件的附件。我可以正常地获得文件附件,但是如果附件有类型:"#Microsoft.OutlookServices.ItemAttachment"。我得到这个ItemAttachment的ID,然后使用该请求获得文件附件:
https://outlook.office.com/api/v1.0/me/messages/MESSAGE_ID/attachments/FILE_ITEM_ID?$expand=Microsoft.OutlookServices.ItemAttachment/Item使用Office 365 REST API无法获取项目附件

返回响应已新属性“项目”,包含了“#Microsoft.OutlookServices.Message”与HasAttachments =假。但尝试使用Web Outlook版本,我可以得到这个项目附件(在这种情况下是.eml文件,exec将打开一个新的邮件表单)。 这里有一个例子:

{"@odata.context"=> 
 
    "https://outlook.office.com/api/v1.0/$metadata#Me/Messages('AAMkAGRiMjE2MTk3LTg3ZWUtNDg5ZC04YTMwLWYzNmU1MGY0Y2VlNgBGAAAAAADkAZdAt2CKRb7qeDvUo2cCBwAM_24JjVmvQpKtlDshSR9tAAAAAAEMAAAM_24JjVmvQpKtlDshSR9tAADa_spkAAA%3D')/Attachments/$entity", 
 
"@odata.type"=>"#Microsoft.OutlookServices.ItemAttachment", 
 
"@odata.id"=> 
 
    "https://outlook.office.com/api/v1.0/Users('[email protected]')/Messages('AAMkAGRiMjE2MTk3LTg3ZWUtNDg5ZC04YTMwLWYzNmU1MGY0Y2VlNgBGAAAAAADkAZdAt2CKRb7qeDvUo2cCBwAM_24JjVmvQpKtlDshSR9tAAAAAAEMAAAM_24JjVmvQpKtlDshSR9tAADa_spkAAA=')/Attachments('AAMkAGRiMjE2MTk3LTg3ZWUtNDg5ZC04YTMwLWYzNmU1MGY0Y2VlNgBGAAAAAADkAZdAt2CKRb7qeDvUo2cCBwAM_24JjVmvQpKtlDshSR9tAAAAAAEMAAAM_24JjVmvQpKtlDshSR9tAADa_spkAAABEgAQAC0OcoIdL8lNgC520X2uWrg=')", 
 
"Id"=>"AAMkAGRiMjE2MTk3LTg3ZWUtNDg5ZC04YTMwLWYzNmU1MGY0Y2VlNgBGAAAAAADkAZdAt2CKRb7qeDvUo2cCBwAM_24JjVmvQpKtlDshSR9tAAAAAAEMAAAM_24JjVmvQpKtlDshSR9tAADa_spkAAABEgAQAC0OcoIdL8lNgC520X2uWrg=", 
 
"DateTimeLastModified"=>"2016-02-20T08:49:48Z", 
 
"Name"=>"[nhung] mail dùng chung cho company", 
 
"ContentType"=>"message/rfc822", 
 
"Size"=>18619, 
 
"IsInline"=>false, 
 
"[email protected]"=> 
 
    "https://outlook.office.com/api/v1.0/$metadata#Me/Messages('AAMkAGRiMjE2MTk3LTg3ZWUtNDg5ZC04YTMwLWYzNmU1MGY0Y2VlNgBGAAAAAADkAZdAt2CKRb7qeDvUo2cCBwAM_24JjVmvQpKtlDshSR9tAAAAAAEMAAAM_24JjVmvQpKtlDshSR9tAADa_spkAAA%3D')/Attachments('AAMkAGRiMjE2MTk3LTg3ZWUtNDg5ZC04YTMwLWYzNmU1MGY0Y2VlNgBGAAAAAADkAZdAt2CKRb7qeDvUo2cCBwAM_24JjVmvQpKtlDshSR9tAAAAAAEMAAAM_24JjVmvQpKtlDshSR9tAADa_spkAAABEgAQAC0OcoIdL8lNgC520X2uWrg%3D')/Microsoft.OutlookServices.ItemAttachment/Item/$entity", 
 
"Item"=> 
 
    {"@odata.type"=>"#Microsoft.OutlookServices.Message", 
 
    "Id"=>nil, 
 
    "DateTimeCreated"=>"2016-02-20T08:49:48Z", 
 
    "DateTimeLastModified"=>"2016-02-20T08:49:48Z", 
 
    "DateTimeReceived"=>"2016-02-20T08:49:42Z", 
 
    "DateTimeSent"=>"2016-02-20T08:49:39Z", 
 
    "HasAttachments"=>false, 
 
    "Subject"=>"[nhung] mail dùng chung cho company", 
 
    "Body"=> 
 
    {"ContentType"=>"HTML", 
 
    "Content"=> 
 
     "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\n<p>--&nbsp;cand_rep</p>\r\n<p>相川 真里和 --comp_name</p>\r\n<p>---&nbsp;comp_established</p>\r\n<p>---&nbsp;comp_address</p>\r\n<p>&nbsp;--&nbsp;comp_business</p>\r\n<p>2110036 --&nbsp;comp_employee</p>\r\n</body>\r\n</html>\r\n"}, 
 
    "Sender"=>{"EmailAddress"=>{"Name"=>"framgia 個別アカウント01", "Address"=>"[email protected]"}}, 
 
    "From"=>{"EmailAddress"=>{"Name"=>"framgia 個別アカウント01", "Address"=>"[email protected]"}}, 
 
    "ToRecipients"=>[{"EmailAddress"=>{"Name"=>"framgia 個別アカウント01", "Address"=>"[email protected]"}}], 
 
    "ConversationId"=>"AAQkAGRiMjE2MTk3LTg3ZWUtNDg5ZC04YTMwLWYzNmU1MGY0Y2VlNgAQAAjK6iM-EvcpiBrx4E7Ogl4=", 
 
    "IsReadReceiptRequested"=>false, 
 
    "IsRead"=>true, 
 
    "IsDraft"=>false, 
 
    "WebLink"=>"https://outlook.office365.com/owa/?ItemID=AAMkAGRiMjE2MTk3LTg3ZWUtNDg5ZC04YTMwLWYzNmU1MGY0Y2VlNgAAAA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem"}}

那么,如何得到这个.eml文件通过使用Office 365的REST API? 有人可以帮助我吗?谢谢 !

Office 365 apis不会将您的项目附件作为* .eml文件提供。如果您需要将ItemAttachment作为* .eml文件,则必须自己构建它。以下是步骤:您可以访问此邮件的所有信息(请参阅新的条目条目),以便您可以创建MailMessage实例,然后调用一个此处提议的技术以将MailMessage保存为* .eml文件How to save MailMessage object to disk as *.eml or *.msg file

注意:您没有提到用于请求Office365 API的技术堆栈,我认为它是C#。

+0

嗨,感谢您的快速回复。我只想说,如果使用Web版本(如果是.eml文件),我可以得到一个文件。我知道我的英语不好,抱歉:)。 –

+0

我不明白“使用网络版”是什么意思?您的意思是,当您使用Outlook Web Access选择此邮件时,.eml文件可用? –

+0

如果答案对您有帮助,请考虑将其标记为“已接受的答案” –