我有一个可在撰写和阅读模式下使用的Outlook加载项。如果用户浏览了撰写加载项,最后,用户创建的某些内容会添加到电子邮件正文中。单击“新建”时,您只能看到撰写加载项。
在Read方案中,我的加载项命令下拉列表有3个选项 - New,Reply,ReplyAll。用户浏览加载项,与Compose模式相同,但最后我使用displayNewMessageForm,displayReplyForm和displayReplyAllForm根据所选操作创建新电子邮件。
到目前为止它工作正常。问题出现了:
当用户打开电子邮件并使用Outlook的回复/回复/转发操作时,我的加载项会显示在新窗口中。 (箭头只显示我的加载项图标)现在,用户单击加载项完成必要的步骤,最后我再次使用displayNewMessageForm,displayReplyForm和displayReplyAllForm来创建新的电子邮件。但此时,上面的API调用失败了。
错误消息:Office.context.mailbox.displayNewMessageForm不是函数。虽然我不认为它与代码有关,但这里是这些API调用的代码。
Formdata和参数正确形成,并且在读取模式下工作正常。
if (selectedEmailType == 'New' || selectedEmailType == 'NewEmail') {
Office.context.mailbox.displayNewMessageForm(parameters);
}
if (selectedEmailType == 'ReplyEmail') {
Office.context.mailbox.item.displayReplyForm(
formdata,
function(asyncResult) {
console.log(asyncResult.value);
Office.context.ui.closeContainer();
}
);
} else if ((selectedEmailType == 'ReplyAllEmail')) {
Office.context.mailbox.item.displayReplyAllForm(
formdata,
function(asyncResult) {
console.log(asyncResult.value);
Office.context.ui.closeContainer();
}
);
}
如果我正确理解您的问题,那么在撰写电子邮件时,当加载项正在运行时,您尝试使用displayReplyForm和其他提到的API。这些API只能在读取模式下使用,并且在“撰写模式”下不可用。你可以find the documentation here。这些API的“适用的Outlook模式”是“读取”。