Office-js 添加 img 到 html body displayReplyAllForm

Office-js Add img to html body displayReplyAllForm

我是 Office Web 加载项的新手,我正在尝试制作一个应用程序,我可以在其中用图片回复所有人。

问题是我无法在 html 正文中附加图像。

我试试这个:

Office.initialize = function (reason) {};

function test(event) {
    var item = Office.context.mailbox.item;

    item.displayReplyAllForm("<img src='data:image/png;base64,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'/>");
    event.completed();
}

这适用于 Outlook Web App,但不适用于桌面版 Outlook。

所以我需要另一种解决方案来在这两种情况下显示。

HTML 邮件由 Word 呈现,而不是桌面版 Outlook 中的 Internet Explorer,并且 Word 不支持嵌入到 HTML 中的图像。唯一的选择是将图像添加为附件,并通过 HTML body (<img src="cid:xyz"> 中的内容 ID 引用它,其中 xyz 是 Content-ID MIME header 图像附件)。或者你可以有一个外部图像。

我找到了解决方案,在 the office.js docs 中它说方法 displayReplyAllForm 你可以附加一个图像用于正文消息。

这样解决:

Office.context.mailbox.item.displayReplyAllForm(
{
  'htmlBody' : '<img src="cid:squirrel.png"/>',
  'attachments' :
  [
    {
      'type' : Office.MailboxEnums.AttachmentType.File,
      'name' : 'squirrel.png',
      'url' : 'http://i.imgur.com/sRgTlGR.jpg',
      'isInline':true
    }
  ]
});

您需要指定 'isInline':true,否则它将作为一个简单文件附加到电子邮件中,而不用于正文。