Не удалось отправить почту через Google API с помощью JavaScript
Я пытаюсь отправить электронное письмо через Google API с помощью JavaScript.
Моя проблема в том, что, когда я пытаюсь отправить простое письмо без вложений, я получаю следующую ошибку:
'raw' строка сообщения полезной нагрузки RFC822 или загрузка сообщения через /upload/* URL обязателен`
Мой код
function sendMessage() {
gapi.client.load('gmail', 'v1', function() {
// Web-safe base64
var to = 'someone@someone.nl',
subject = 'Hello World',
content = 'send a Gmail.'
var base64EncodedEmail = btoa(
"Content-Type: text/plain; charset=\"UTF-8\"\n" +
"Content-length: 5000\n" +
"Content-Transfer-Encoding: message/rfc2822\n" +
"to: someone@someone.nl\n" +
"from: \"test\" <test@gmail.com>\n" +
"subject: Hello world\n\n" +
"The actual message text goes here"
).replace(/\+/g, '-').replace(/\//g, '_');
var mail= base64EncodedEmail;
console.log(mail);
var request = gapi.client.gmail.users.messages.send({
'userId': "me",
'message': {
'raw': mail
}
});
request.execute(function(response){
console.log(response);
});
});
}
1 ответ
Решение
Через несколько дней я нашел ответ самостоятельно. Проблема заключалась в том, что "сообщение" в теле можно использовать только при отправке вложения в электронном письме.
Если у вас нет вложений, запрос выглядит так, как я написал здесь
var mail= base64EncodedEmail;
console.log(mail);
var request = gapi.client.gmail.users.messages.send({
'userId': "me",
'resource': {
'raw': mail
}
});
request.execute(function(response){
console.log(response);
});