Отправить письмо с вложением Microsoft Graph не работает - PullRequest
0 голосов
/ 28 июня 2018

Я делаю приложение, которое отправляет электронные письма от Пользователя, как описано в этой статье .

Все работает как положено, за исключением случаев, когда я пытаюсь включить вложение. Письмо отправляется, но без вложения. Я не уверен, в чем проблема, поскольку я перепробовал почти все, что смог найти в Интернете. Я убедился, что файл, который я отправляю, правильно закодирован в base64.

var message = {
    "subject": subject,
    "hasAttachments":true,
    "body": {
        "contentType": "Text",
        "content": emailBody
    }, 
    "toRecipients": toRecipients,
    ccRecipients, 
    bccRecipients
};


function sendMailRequest(access_token, message, uriSend, file, base64, callback){
const attachments = [{
'@odata.type': '#microsoft.graph.fileAttachment',
"contentBytes": base64
"name": "example.jpg"
}];

// Configure the request
var options2 = {
"url": uriSend,
"method": 'POST',
"headers": { 
    'Authorization': access_token,
    'Content-Type': 'application/json'
},
"body": JSON.stringify({
    "message": message, 
    "SaveToSentItems": "true",
    "Attachments": attachments
})
}

1 Ответ

0 голосов
/ 28 июня 2018

Вложения идут внутри message JSON, а не за его пределами. Это должно работать:

function sendMailRequest(access_token, message, uriSend, file, base64, callback) {
  const attachments = [
    {
      "@odata.type": "#microsoft.graph.fileAttachment",
      "contentBytes": base64
      "name": "example.jpg"
    }
  ];

  message["attachments"] = attachments;

  // Configure the request
  var options2 = {
    "url": uriSend,
    "method": "POST",
    "headers": { 
      "Authorization": access_token,
      "Content-Type": "application/json"
    },
    "body": JSON.stringify({
      "message": message, 
      "SaveToSentItems": "true"
    })
  }
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...