在Outlook回复中使用displayNewMessageForm时不起作用

时间:2019-03-26 15:48:23

标签: javascript outlook-addin office-js outlook-web-addins

我有一个Outlook加载项,可以在撰写和阅读模式下使用。如果用户经过了compose加载项,最后,用户创建的某些内容将被添加到电子邮件正文中。当您单击“新建”时,您只能看到撰写的加载项。

在“读取”方案中,我的外接程序命令下拉菜单中有3个选项-“新建”,“答复”,“全部答复”。用户经历了与Compose模式相同的加载项,但是最后我根据选择的操作使用 displayNewMessageForm,displayReplyForm displayReplyAllForm 创建新电子邮件。

到目前为止,它工作正常。问题来了:

当用户打开电子邮件并使用Outlook的答复/答复全部/转发操作时,我的加载项会显示在新窗口中。 (箭头仅显示我的加载项图标) enter image description here  现在,用户单击加载项完成必要的步骤,最后,我再次使用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();
                                                        }
                                                );
                                        }

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则您正在尝试在编写电子邮件的外接程序运行时使用displayReplyForm和其他提到的API。这些API只能在读取模式下使用,而在撰写模式下将不可用。您可以find the documentation here。这些API的“适用Outlook模式”为“读取”。