Outlook加载项-附件ID在桌面应用程序中无法正常运行,但在Web应用程序中可以运行

问题描述 投票:0回答:1

我已经为Outlook开发了一个加载项,它需要能够访问电子邮件的附件。

在桌面应用程序上,如果我将带有附件的电子邮件从共享文件夹移动到主收件箱,然后尝试在其上运行加载项,则会收到错误消息:

The specified attachment Id is invalid.

但是,如果我通过Web应用程序执行完全相同的操作,则可以正常工作。

我已经检查过,并且Office.context.mailbox.item.itemIdOffice.context.mailbox.item.attachments[i].id完全相同,无论是在Web还是台式机上。

带有附件的电子邮件尚未从其他文件夹移动,并且没有附件的电子邮件可以正常工作。

我正在使用PHP脚本从远程服务器上获取附件,使用我最初从Office.context.mailbox.getCallbackTokenAsync获得的回调令牌。这些请求是通过EWS请求发出的。

我正在运行Office 365,并且Outlook版本是1910(内部版本12130.20390),在Windows 10上运行。

有人可以帮忙吗?

outlook outlook-web-addins
1个回答
0
投票

在收到@ OutlookAdd-insTeam-MSFT的一些有用建议之后,我已经找到了解决方案。

问题是,在将消息从共享文件夹移动到主收件箱后,使用桌面应用程序时,Office.context.mailbox.item.attachments(在我们运行Office.initialize时创建的)不再返回正确的ID,而是似乎返回了电子邮件移动之前的旧的已缓存/过期ID。使用此Web应用程序时返回的ID使用此方法是正确的。

但是,无论是从Web应用程序还是从桌面应用程序调用,都通过EWS请求(或REST调用,但我使用EWS)从交换服务器请求ID总是返回正确的附件ID。

因此,我要解决的问题是确保并从交换服务器请求所有附件ID,而不是使用Office.context.mailbox.item对象。这意味着要添加一个额外的步骤,即必须首先获取回调令牌,然后才能从交换服务器请求信息,但这意味着您总会获得正确的ID。

我希望这对其他人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.