如果我的邮箱中有一个带有.eml(即message/rfc822)附件的邮件,fetching the message via the REST API会返回带有单个ItemAttachment
的邮件。 ItemAttachment
封装了代表附加消息的Microsoft.OutlookServices.Message
。附加的Message
对象的空值为Id
,因此我们无法直接获取它。但是如果我们想要获取其中一个附件的内容呢?通过Outlook REST API获取连接邮件上的附件
Message in Inbox
\--> Attachments
\--> ItemAttachment
\--> Item
\--> Attachments
\--> FileAttachment <-- (want the content of this)
这第二级FileAttachment的具有的@odata.id
:
https://outlook.office.com/api/beta/Users('[email protected]7f0b2a1fa')/('')/Attachments('AAMkAGQ3MzU1BBc2LWFjNTItNDk4Mi1iZTdlLTM3NGM0NzY5NTNmYgBGAAAAAACI4ZQOxnCPTpOe8P6IYO9gBwA_fgVM0BybQ5W_noJvz6hgAAAAAAEMAAA_fgVM0BybQ5W_noJvz6hgAAB2hYE9AAACEgAQAA_BBM8zEqJPrcr4BJ-cOyUSABAAlLV-2suqwEGuRduQ43E9pg==')
但要获取该对象会因为缺少MESSAGE_ID路径段的失败,任何企图:
{"error":{"code":"RequestBroker-ParseUri","message":"Empty segment encountered in request URL. Please make sure that a valid request URL is specified."}}
如何获取该附件的内容?
我会很高兴得到一个FileAttachment并自己解析它。这些情况非常罕见,这不是问题。但我没有收到FileAttachment。我正在使用测试版API,并且正在获取'“@ odata.type”:“#Microsoft。OutlookServices.ItemAttachment“,”@ odata.id“:”https://outlook.office.com/api/beta/Users('[email protected]7f0b2a1fa' )/ Messages('AAMkAGQ3MzU1YTc2L ...')/ Attachments('AAMkAGQ3MzU ...')“' – dkarp
感谢您的更正。使用Beta版API后,我可以将'eml'附件作为项目附件可能会重现此问题,正如您在下面描述的文件附件ID返回错误 在这种情况下,我们可以扩展原始邮件的附件以获取项目附件的文件附件的内容。 –