Как отправить сообщение с многострочным телом с помощью EWS Office API

#javascript #outlook-addin #office-addins

Вопрос:

У меня точно такая же проблема, как упоминалось here:https://social.msdn.microsoft.com/Forums/en-US/8abd0ad0-260a-4fbe-9e6c-9a9f1236dcc2/how-to-send-message-with-multiline-body-with-ews-managed-api?форум= exchangesvrdevelopment

По сути, у меня есть текст, который мне нужен многострочный для API Javascript приложений office, но он продолжает удалять reg из текста, поэтому многострочные исчезают.

Вот базовый код:

 Office.context.mailbox.item.getAllInternetHeadersAsync(async function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {

BodyText = "Blah rn SecondLine rn";
     

      var MyMessage = `Hello Support, <br>
<br>
This is an automated email from `   Office.context.mailbox.userProfile.displayName   ` to check if this is spam. <br>
<br>      
<b>Email Header Information: </b>
<br>
`  asyncResult.value   `<br>
<br>
<b>Email Details: </b>
<br>
`  BodyText 

console.log(emaildataresult)
      
        
    

        function htmlDecode(input) {
  var doc = new DOMParser().parseFromString(input, "text/html");
  return doc.documentElement.textContent;
}

      function htmlEncode(value) {
        // Create a in-memory element, set its inner text (which is automatically encoded)
        // Then grab the encoded contents back out. The element never exists on the DOM.
        return $('<textarea/>').text(value).html();
      }

      var request =
        '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'  
        '  <soap:Header><t:RequestServerVersion Version="Exchange2010" /></soap:Header>'  
        "  <soap:Body>"  
        '    <m:CreateItem MessageDisposition="SendAndSaveCopy">'  
        '      <m:SavedItemFolderId><t:DistinguishedFolderId Id="sentitems" /></m:SavedItemFolderId>'  
        "      <m:Items>"  
        "        <t:Message>"  
        "          <t:Subject>"   Office.context.mailbox.userProfile.displayName   " - Spam Check"   "</t:Subject>"  
        '          <t:Body BodyType="HTML">'   htmlEncode(MyMessage) 
        "</t:Body>"  
        "          <t:ToRecipients>"  
        "            <t:Mailbox><t:EmailAddress>"  
        Office.context.mailbox.userProfile.emailAddress  
        "</t:EmailAddress></t:Mailbox>"  
        "          </t:ToRecipients>"  
        "        </t:Message>"  
        "      </m:Items>"  
        "    </m:CreateItem>"  
        "  </soap:Body>"  
        "</soap:Envelope>";
      console.log(request)
      Office.context.mailbox.makeEwsRequestAsync(request, function (result) {
       
      });

    }
  })
 

По сути, BodyText = "Blah rn SecondLine rn" выходит как Blah SecondLine .

Я почти уверен, что это связано с <t:Body BodyType="HTML"> внутри request переменной, но я не уверен, как отформатировать тип тела для чего-то, что подберет reg.

Я также пытался

 String BodyText = "Blah rn SecondLine rn";
      em.Body = new MessageBody(BodyType.Text, BodyText);
 

Из сообщения https://social.msdn.microsoft.com/Forums/en-US/8abd0ad0-260a-4fbe-9e6c-9a9f1236dcc2/how-to-send-message-with-multiline-body-with-ews-managed-api?forum=exchangesvrdevelopment но это не сработало, я думаю, это потому, что, возможно, это C #.

Есть предложения от команды Office-Addin?

Спасибо