Outlook插件能否追踪邮件已读状态及实时阅读状态?
嘿,针对你这两个关于Outlook插件追踪邮件阅读状态的问题,我给你梳理下实际的实现情况:
1. Outlook插件是否可以追踪邮件的已读状态?
答案是肯定的,但得结合具体技术方案,同时要注意一些限制:
- 基于Office JS的原生Outlook插件没有直接的实时事件来捕获收件人打开邮件的动作,但你可以通过两种间接方式实现追踪:
- 隐形信标像素:在邮件正文插入一张极小的透明图片,图片的URL指向你的后端服务。当收件人打开邮件并加载这张图片时,你的服务端就能收到请求,以此标记邮件已被阅读。不过要注意,很多邮件客户端默认会阻止外部图片加载,这种方法的可靠性不是100%。
- API轮询:通过Microsoft Graph API或者Exchange Web Services (EWS) 定期查询目标邮件的
IsRead属性。当这个属性从false变为true时,就可以判定邮件已被阅读。但这种方法是被动轮询,会有一定延迟,而且需要申请对应的API权限。
2. 能否实现一款可追踪邮件正被阅读状态的插件?
这里的“正被阅读”应该是指实时感知收件人正在查看邮件的状态吧?如果是这个意思,那实现起来难度非常大,甚至可以说原生Outlook插件能力很难做到这种实时的“正在阅读”追踪,原因如下:
- Office JS API的运行上下文主要局限在发件人或者当前用户的Outlook客户端中,没有提供监听外部收件人邮件阅读操作的实时事件,根本没法直接感知其他用户的阅读状态。
- 如果只是追踪当前用户自己阅读邮件的状态(比如自己打开邮件并处于阅读中的状态),那倒是可以实现:你可以通过
Office.context.mailbox.item监听loaded事件,或者用getSelectedItemsAsync方法来判断当前是否有邮件处于打开状态,但这仅限当前用户自己的操作,无法追踪外部收件人。 - 如果是要追踪外部收件人的“正在阅读”状态,目前没有直接的插件能力支持,最多只能用前面提到的信标方式记录“已打开”的时间点,但没法知道收件人是否还在持续阅读邮件。
内容的提问来源于stack exchange,提问作者grangeybeav
相关产品推荐
相关产品推荐

