Outlook 2016 не отображает логотип (изображение) в приглашении на мероприятие по электронной почте - PullRequest
0 голосов
/ 09 января 2019

У нас есть надстройка 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 и Mobile, но отсутствует в Outlook 2016 Mac и Windows

Мы исправили проблему, перейдя по этой ссылке в Outlook 2013.

----- 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. Пожалуйста, сообщите нам, как нам нужен логотип между повесткой дня (если есть) и нашим текстом.

---- Скриншот 16/01/2019 -----

enter image description here

------ Матрица Outlook 26.01.2009 -------

enter image description here

1 Ответ

0 голосов
/ 09 января 2019

Добавление изображения к телу таким образом некорректно, и, как вы видели, иногда глючит. Вместо этого вы должны использовать 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 });
});

...