Outlook 2016不会在事件电子邮件邀请中呈现徽标(图像)

时间:2019-01-09 13:58:42

标签: outlook office365 office-js outlook-web-addins

我们有一个适用于Calendar的O365加载项。它将HTML放入邀请的正文中。除了我们放置的图像之外,其他所有方法都运行良好。如何使图像出现在邀请电子邮件视图中?

var logo = "<div style=\"line-height:60px\"><img src=\"https://static-a.test.com/a2/custom-assets/enterprise/4714/isg_logo/d05aa76d58614c0e88b864eec963cec0.png\" height=\"30\" alt=\"Test Meet\" style=\"user-select: none;\" tabindex=\"0\"></div>";

var formattedBody = agenda
            + _.repeat(newLine, 1)
            + logo
            + testInvitation;

return Q.oinvoke(Office.context.mailbox.item.body, "setAsync", formattedUserBody, { coercionType: coercionType })
           .then(function() {
                    logger.info("Add meeting completed successfully");
                });

还有另一种方法可以修复它,或者它是Outlook的已知限制?

  • 徽标在日历视图中正确显示,而不在电子邮件视图中显示
  • 某些VSTO加载项可以呈现徽标,但不能呈现Office 365加载项
  • 在OWA和移动应用程序中可以看到徽标,但在Outlook 2016 Mac和Windows中则看不到

我们通过在Outlook 2013中遵循此link来解决此问题。

----- 01/09/19-有关提供的解决方案之后的问题的更新 ----------

报告的主要问题已由解决方案解决。现在,我们可以在电子邮件邀请中看到徽标,但是在“日历”视图中该徽标已损坏。

enter image description here

更改的代码:

var formattedBody = agenda
        + _.repeat(newLine, 1)
        +  "<img src='cid:testMeet.png'/>"
        + testInvitation;


Office.context.mailbox.item.addFileAttachmentAsync(
  "https://static-a.test.com/a2/custom-assets/enterprise/4714/isg_logo/d05aa76d58614c0e88b864eec963cec0.png",
  "testMeet.png",
  {asyncContext: null, isInline: true},
  function (asyncResult)  {
        Office.context.mailbox.item.body.setAsync( 
    formattedBody,
          { coercionType: Office.CoercionType.Html, asyncContext:null }); 
   });

此修复程序还破坏了Outlook Mobile App中的徽标呈现。请告知,因为我们需要在议程(如果有)和文本之间添加徽标。

----截图01/16/2019 -----

enter image description here

------ Outlook矩阵2019年1月26日-------

enter image description here

1 个答案:

答案 0 :(得分:1)

以这种方式将图像添加到身体是不正确的,并且正如您所看到的,有时是越野车。相反,您应该使用addFileAttachmentAsync,更具体地说是isInline属性,该属性将允许您使用cid:引用来添加图像。

例如:

Office.context.mailbox.item.addFileAttachmentAsync(
  "https://static-a.test.com/a2/custom-assets/enterprise/4714/isg_logo/d05aa76d58614c0e88b864eec963cec0.png",
  "testMeet.png", 
  {asyncContext: null, isInline: true},  
  function (asyncResult)  {
        Office.context.mailbox.item.body.setAsync( 
          "<img src='cid:testMeet.png'/>", 
          { coercionType: Office.CoercionType.Html, asyncContext: null });
});