项目 ID 和附件 ID 发生变化
Item id's and attachment id's that change
几个月来我一直在为 ms 图表中的随机错误而苦苦挣扎 api。最后我在整个混乱中找到了一些意义,但我认为图表中有错误 api。
我开发了一个多租户 outlook-addin (JS),我的客户使用它来将他们的电子邮件 and/or 附件存储到存储中。我使用 Office.context.mailbox.item 对象来获取邮件的 ItemId 和附件的 ID。我将这些 id 发送给服务商,以使用 EWS 完成检索电子邮件 and/or 附件的繁重工作。因为客户端可以选择 select 保存哪些附件,所以我需要将 select 编辑的附件 ID 发送到服务器,我在服务器上检索电子邮件和附件。但是,当我尝试将附件 ID 与来自 Outlook 应用程序的 selected 匹配时,它们是不同的,我找不到正确的附件。这种情况发生在随机消息和随机租户上。
从电子邮件和附件的 ID 可以看出,附件 ID 似乎以电子邮件 ID 为前缀。有时它们不匹配。示例:
用户 select 在 Outlook 桌面客户端(Mac 或 Windows)中发送电子邮件并获取此电子邮件的 ID:
AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAfj8mWAADVFKe56AEMQo4qySw0u6tyAABBmpnFAAA=
附件有此 ID(与电子邮件 ID 不匹配):
AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAAAAEJAADVFKe56AEMQo4qySw0u6tyAABBmmK4AAABEgAQAOBOPI4JZ71CuMzlk7nqfZw=
但是当我使用电子邮件 ID 查询 EWS 时(我知道 REST/EWS ID 差异),我得到了附件的这个 ID(与电子邮件 ID 匹配):
AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAfj8mWAADVFKe56AEMQo4qySw0u6tyAABBmpnFAAABEgAQAOBOPI4JZ71CuMzlk7nqfZw=
有趣的是,它适用于 OWA - 这个附件 ID 是正确的。这封特定的电子邮件已被移动,我知道在移动文件时,id 会发生变化,但附件 id 不应该随之改变吗?在 EWS 中,id 似乎已更改但在 Outlook 中没有
我用我的 Id-Whispering 技能查看了你的 ID。
第一个是项目本身的id,不是项目的附件。这个 id 的实际 PR_ENTRYID 是 AAAAANtemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAB+PyZYAANUUp7noAQxCjirJLDS7q3IAAEGamcUAAA==
第二个是附件,但父项不同。这个 id 的 PR_ENTRYID 是
AAAAANTemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAAAAAQkAANUUp7noAQxCjirJLDS7q3IAAEGaYrgAAA==
附件 id 部分:EADgTjyOCWe9QrjM5ZO56n2c
第三个也是一个附件,同样是id的"attachment id"部分,但在本例中,它指的是原始位置的项目。如您所见,PR_ENTRYID 匹配:
AAAAANTemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAB+PyZYAANUUp7noAQxCjirJLDS7q3IAAEGamcUAAA==
附件 id 部分:EADgTjyOCWe9QrjM5ZO56n2c
那么这里发生了什么?它看起来像是在第二种情况下,该项目位于不同的文件夹中。 PR_ENTRYID 由 FID(文件夹 ID)和 MID(邮件 ID)组成。因此,如果一个项目从一个文件夹移动到另一个文件夹,则 id 会发生变化。你把它移回去,它就会恢复到原来的状态。很奇怪,我知道。
这是 Microsoft 提出不可变 ID 的充分理由:)
几个月来我一直在为 ms 图表中的随机错误而苦苦挣扎 api。最后我在整个混乱中找到了一些意义,但我认为图表中有错误 api。
我开发了一个多租户 outlook-addin (JS),我的客户使用它来将他们的电子邮件 and/or 附件存储到存储中。我使用 Office.context.mailbox.item 对象来获取邮件的 ItemId 和附件的 ID。我将这些 id 发送给服务商,以使用 EWS 完成检索电子邮件 and/or 附件的繁重工作。因为客户端可以选择 select 保存哪些附件,所以我需要将 select 编辑的附件 ID 发送到服务器,我在服务器上检索电子邮件和附件。但是,当我尝试将附件 ID 与来自 Outlook 应用程序的 selected 匹配时,它们是不同的,我找不到正确的附件。这种情况发生在随机消息和随机租户上。
从电子邮件和附件的 ID 可以看出,附件 ID 似乎以电子邮件 ID 为前缀。有时它们不匹配。示例:
用户 select 在 Outlook 桌面客户端(Mac 或 Windows)中发送电子邮件并获取此电子邮件的 ID:
AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAfj8mWAADVFKe56AEMQo4qySw0u6tyAABBmpnFAAA=
附件有此 ID(与电子邮件 ID 不匹配):
AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAAAAEJAADVFKe56AEMQo4qySw0u6tyAABBmmK4AAABEgAQAOBOPI4JZ71CuMzlk7nqfZw=
但是当我使用电子邮件 ID 查询 EWS 时(我知道 REST/EWS ID 差异),我得到了附件的这个 ID(与电子邮件 ID 匹配):
AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAfj8mWAADVFKe56AEMQo4qySw0u6tyAABBmpnFAAABEgAQAOBOPI4JZ71CuMzlk7nqfZw=
有趣的是,它适用于 OWA - 这个附件 ID 是正确的。这封特定的电子邮件已被移动,我知道在移动文件时,id 会发生变化,但附件 id 不应该随之改变吗?在 EWS 中,id 似乎已更改但在 Outlook 中没有
我用我的 Id-Whispering 技能查看了你的 ID。
第一个是项目本身的id,不是项目的附件。这个 id 的实际 PR_ENTRYID 是 AAAAANtemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAB+PyZYAANUUp7noAQxCjirJLDS7q3IAAEGamcUAAA==
第二个是附件,但父项不同。这个 id 的 PR_ENTRYID 是 AAAAANTemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAAAAAQkAANUUp7noAQxCjirJLDS7q3IAAEGaYrgAAA==
附件 id 部分:EADgTjyOCWe9QrjM5ZO56n2c
第三个也是一个附件,同样是id的"attachment id"部分,但在本例中,它指的是原始位置的项目。如您所见,PR_ENTRYID 匹配: AAAAANTemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAB+PyZYAANUUp7noAQxCjirJLDS7q3IAAEGamcUAAA==
附件 id 部分:EADgTjyOCWe9QrjM5ZO56n2c
那么这里发生了什么?它看起来像是在第二种情况下,该项目位于不同的文件夹中。 PR_ENTRYID 由 FID(文件夹 ID)和 MID(邮件 ID)组成。因此,如果一个项目从一个文件夹移动到另一个文件夹,则 id 会发生变化。你把它移回去,它就会恢复到原来的状态。很奇怪,我知道。
这是 Microsoft 提出不可变 ID 的充分理由:)