Outlook 加载项主体 setasync UI 更新但结果为空

Outlook add-in body setasync UI updates but result is blank

我做了一个测试 office.js Outlook 加载项,它使用 HTML 的 setasync 和强制类型将格式化的 HTML 注入 Office.context.mailitem.body。一切正常,但在 1 月中旬突然出现了编辑日历邀请的问题。 UI 得到更新,但当发送邀请时,文本被删除。从日历中打开日历邀请时,文本为空白。一些观察:

  1. 编辑电子邮件正文仍然有效。该问题仅出现在日历邀请中。
  2. 如果您在加载项插入 HTML 后手动添加文本,邀请有效。如果您先添加文本,然后加载项添加其 HTML 但您什么都不做,则邀请文本只是原始文本 - 没有 HTML。它的作用类似于 setasync 更新 UI 但某种内部脏标志未设置且文本被清空。
  3. 这仅发生在 Outlook 2013 中。相同的电子邮件帐户在 Outlook 2016 中有效。
  4. 这发生在我们的工作电子邮件上,我认为它有一个 Office Online 后端,但在我的 azure 测试租户上没有。
  5. 将强制类型设置为文本的仅文本邀请不会出现此问题。
  6. 不管插入的HTML多么简单。仅插入以下简单的 HTML 会导致问题:

    <b>this is bold text</b>
    

知道会发生什么吗?

提前致谢。

所以这确实是一个需要修复的错误。与此同时,我正在尝试解决这个问题,作为一种解决方法,我发现如果在执行 SetBody 后弄脏主体,则消息将正确发送。

您可以通过键入 space 手动执行此操作,也可以在实际调用中执行此操作,例如:

Office.context.mailbox.item.body.setAsync
(
    "<B>tim test</b>",
    {
        "coercionType" : "html"
    },
    function (asyncResult)
    {
        Office.context.mailbox.item.body.prependAsync(".");
    }
);

(你可能想插入一些不那么干扰的东西,比如 space)