我有一个使用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更新是否可能破坏了功能?
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 Application(@ https://outlook.office.com)和桌面Outlook应用程序,都是相同的行为。
答案 0 :(得分:1)
Office.context.mailbox.item.to.getAsync API将仅返回已解析的收件人。如果TO电子邮件地址未解析(如标题为“不起作用”的第一个屏幕截图中所示),则API将在解析后(在台式机和OWA中)都不会返回该电子邮件地址。
查询to.getAsync之后,可以使用RecipientsChanged Event获取新解析的收件人。新解决收件人时将触发此事件。