我使用以下图形API URL来检索附加到电子邮件的文件名:
https://graph.microsoft.com/v1.0/me/messages/*/附件但是,不再返回'的附加文件名。味精的文件。文件扩展名丢失。请参见下面的示例返回:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('')/messages('')/attachments",
"value": [
{
"@odata.type": "#microsoft.graph.itemAttachment",
"id": "*",
"lastModifiedDateTime": "2021-08-13T11:21:29Z",
"name": "Original Email",
"contentType": null,
"size": 45795,
"isInline": false
}
]
}
其他文件类型:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('')/messages('')/attachments",
"value": [
{
"@odata.type": "#microsoft.graph.fileAttachment",
"@odata.mediaContentType": "application/octet-stream",
"id": "",
"lastModifiedDateTime": "2021-08-13T11:14:07Z",
"name": "Original Email.mht",
"contentType": "application/octet-stream",
"size": 54693,
"isInline": false,
"contentId": null,
"contentLocation": null,
"contentBytes": ""
}
]
}
注意:敏感信息已被编辑(*)。
我可以看到@odata。返回的类型不同:
@odata.type": "#microsoft.graph.itemAttachment
@odata.type": "#microsoft.graph.fileAttachment
我不确定这是为什么,电子邮件以同样的方式附上。
在上述两种情况下,我使用Outlook给自己发了一封电子邮件,将其保存到我的本地文件系统中,创建了另一封电子邮件,附加了先前保存的文件,并将保存的电子邮件附加在新邮件中。然后使用指定的URL(以及许多其他变体)发出请求。
我已经看遍了,没有我使用的请求URL返回此类型的文件扩展名。
是否有一种方法可以返回'。味精的文件?
编辑:这就是(java)我如何获得附件的文件名(除了ReferenceAttachment,因为我不处理它们)
public String getCurrentAttachmentName()
{
String fileName = null;
if (currentAttachment instanceof FileAttachment)
{
fileName = currentAttachment.name;
} else if (currentAttachment instanceof ItemAttachment)
{
if (null != currentAttachment.contentType)
{
fileName = currentAttachment.name;
} else
{// outlook email or contact etc., add extension
ItemAttachment itemAttachment = (ItemAttachment) currentAttachment;
if (itemAttachment.item instanceof Contact)
{
fileName = currentAttachment.name + ".vcf";
} else if (itemAttachment.item instanceof Message)
{
fileName = currentAttachment.name + ".eml";
} else if (itemAttachment.item instanceof Event)
{
fileName = currentAttachment.name + ".ics";
} else
{
fileName = currentAttachment.name + ".bin"; // should be unreachable but just in case.
}
}
}
// looping does not allow ReferenceAttachment so we don't need to handle that type
return fileName;
}
MS图在资源级别区分附件即fileAttachment资源类型和itemAttachment资源类型
即使以相同的方式附加,联系人、事件或消息附件属于itemAttachment资源类型,并且具有与文件附件不同的道具。