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

How to create a new email from an outlook add-in?

我想在我的任务窗格加载项中添加一个 'contact us' link 或按钮。我尝试使用 'mailto' link 方法,但无法正常工作:在网络上,它会启动桌面默认应用程序;在 iOS,它会打开一封新电子邮件,但为空(无收件人);在 Outlook 桌面上,它会引发警报,因为 Web link 试图打开桌面应用程序!

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

编辑:

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

原始答案:

很遗憾,Office.js API 没有提供您请求的功能。 API 也有 Office.context.mailbox.displayMessageForm method to open existing message in read mode or Office.context.mailbox.item.displayReplyForm to display reply form for existing message; it provides ability to open new form to compose appointment Office.context.mailbox.displayNewAppointmentForm,但没有新的撰写表格。

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

中描述您的场景

基于无法使用 Office.js API 据我所知,您有 2 个选择:

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

目前移动 Outlook 应用程序不支持 displayNewMesageForm 可以在其他客户端中使用它来创建新的电子邮件草稿。但是,您可以使用 Outlook 应用程序协议来创建电子邮件草稿。例如 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});

在此处找到协议的详细信息