Outlook草稿邮件在发送时更改不可变的ID



我使用的上下文:office js(检索消息项的rest ID(,java后端(使用GraphClient获取不可变ID,订阅webhook端点(

当我通过office js获得草案项目的其余itemId时,如下所示:

Office.context.mailbox.item.saveAsync((asyncResult) => {
if (asyncResult.error) {
//hadle
} else {
resolve(
Office.context.mailbox.convertToRestId
(
asyncResult.value, 
Office.MailboxEnums.RestVersion.v1_0
)
);
}
});

我通过GraphClient将其发送到后端,在那里我将其转换为我保存的Immutable ID。一旦我在订阅端点上收到通知(我更改并保存消息草稿的主题在outlook中(,则成功配对。

问题是当我从outlook发送草稿时。我收到订阅enpoint的通知,但它有一个不同的不可变ID。我用Prefer头创建订阅,如下所示:

Subscription subscription = new Subscription();
subscription.changeType = "updated";
subscription.notificationUrl = notificationUrl;
subscription.resource = resource;
subscription.expirationDateTime = OffsetDateTime.now().plusDays(2);
subscription.clientState = secret;
subscription.latestSupportedTlsVersion = "v1_2";
SubscriptionCollectionRequest request = graphServiceClient.subscriptions().buildRequest();
if(request != null) {
request.addHeader("Prefer", "IdType="ImmutableId"");
request.post(subscription);
} else {

我做错了什么吗?草稿被移到";已发送项目";文件夹,不应更改不可变的ID(https://learn.microsoft.com/en-us/graph/outlook-immutable-id)。

Id看起来像这个AAkALgAAA.........yACqAC-EWg0AC.......7B4s_RdwAA....TwAA,我想它们是正确的。就在发送草稿的下划线更改后的最后一节。

一点也不奇怪——这是一条物理上不同的消息。正如Exchange的工作方式一样,邮件保存后无法翻转已发送/未发送标志,因此会在"已发送邮件"文件夹中创建一封新邮件。

最新更新