0

我有一个使用 Office Javascript API 开发的 Outlook 插件。它着眼于正在撰写的新电子邮件并根据它的收件人来做事:https ://docs.microsoft.com/en-us/office/dev/add-ins/reference/objectmodel/requirement-set-1.3/ office.context.mailbox.item

  • 当您从建议的电子邮件列表中“选择”电子邮件时,代码正确返回 TO 电子邮件...屏幕截图显示在此线程的底部

  • 要调试 Javascript,我使用 C:\Windows\SysWOW64\F12\IEChooser.exe

  • 直到上周它工作正常。是否有可能是 Windows 更新破坏了功能?

  • 我是唯一可以访问代码的人。几个月都没有修改过。
  • 调试器运行时,getAsync 正确返回“TO”值。我需要编写对全局变量的响应,以证明这些值在未调试时是“未定义的”。

var resultObjects;
var resultObjects2;
var strMessages = '';
var strTo = '';

var mailbox;
var mailitem;

(function () {
    "use strict";

    // The Office initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            mailbox = Office.context.mailbox;
            mailitem = mailbox.item;

            mailitem.to.getAsync(function (result) {
                if (result.status === 'failed') {
                    strMessages = 'FAILED';
                } else {
                    strMessages = 'SUCCESS';
                    strTo = result.value[0];
                    resultObjects = result;
                    resultObjects2 = result.value;
                }
            });

            loadApp();
        });
    };
})();

以下是变量的值,当应用程序加载且调试器未运行时

在此处输入图像描述


编辑


如果您“选择”收件人电子邮件,使其以粗体显示...代码正常工作。如果您离开输入的文本字段而不选择建议的电子邮件,则它不起作用。Outlook Web 应用程序 (@ https://outlook.office.com ) 和桌面 Outlook 应用程序的行为相同。

不工作 在此处输入图像描述

有用吗 在此处输入图像描述

4

1 回答 1

1

Office.context.mailbox.item.to.getAsync API 将仅返回已解析的收件人。如果 TO 电子邮件地址未解析(如标题为“不工作”的第一个屏幕截图中所示),则 API 将不会返回电子邮件地址,直到它被解析(在桌面和 OWA 中)。

您可以使用RecipientsChanged 事件,在查询 to.getAsync 后获取新解析的收件人。当新解决收件人时,将触发此事件。

于 2019-06-12T21:02:32.313 回答