如何从Outlook加载项创建新电子邮件?

时间:2017-04-19 08:34:28

标签: javascript outlook outlook-addin mailto

我想在我的任务栏加载项中添加“与我们联系”链接或按钮。我尝试使用“mailto”链接方法无法正常工作:在网络上,它启动了桌面默认应用程序;在iOS上,它打开一个新的电子邮件,但是空(没有收件人);在Outlook桌面上,它会抛出警报,因为Web链接尝试打开桌面应用程序!

是否有一种简单的方法可以在当前使用的Outlook应用程序中创建和打开一个具有预填充字段的新邮件,因此该人只需编写其请求并发送?信息:我的加载项适用于Outlook 365并使用JS编写。

2 个答案:

答案 0 :(得分:2)

不幸的是,Office.js API不提供您请求的功能。 API具有Office.context.mailbox.displayMessageForm方法以在读取模式下打开现有消息,或Office.context.mailbox.item.displayReplyForm显示现有消息的回复表单;它提供了打开新表单以组成约会Office.context.mailbox.displayNewAppointmentForm的能力,但没有提供新的撰写表格。

如果您希望在即将发布的版本中看到此内容,则可以在officespdev.uservoice.com

中描述您的方案

根据我无法使用Office.js API,我有两个选择:

  • 使用您描述的“mailto:”协议来调用新的撰写表单(包含您观察到的所有问题)
  • 克里特岛一个简单的“联系我们”表单,收集信息并使用您选择的AJAX或服务器端技术将其发送到您的服务器。

修改

从Office JS API级别1.6 displayNewMessageForm(parameters)方法开始。方法打开一个表单,使用户可以创建新消息。如果指定了参数,则会自动使用参数的内容填充消息表单字段。

答案 1 :(得分:0)

当前,移动Outlook应用程序不支持displayNewMesageForm,后者可以在其他客户端中用于创建新的草稿电子邮件。但是,您可以使用Outlook apps协议创建电子邮件草稿。例如ms-outlook://compose?to=joe@example.com&subject=Hello

这是在移动设备上的Outlook应用程序中工作的示例。

const url = "ms-outlook://compose?to=joe@example.com&subject=Hello";
Office.context.ui.displayDialogAsync(url, { height: 75, width: 80});

https://stackoverflow.com/a/42285737/1111659处找到了协议的详细信息。