Не удалось отправить почту через google api в nodejs
Я пытаюсь отправить электронное письмо через Google API.
Я использую googleapis для доступа к API Google в node.js .
Моя проблема в том, что, когда я пытаюсь отправить простое письмо без вложений, я получаю следующую ошибку:
'raw' строка сообщения полезной нагрузки RFC822 или загрузка сообщения через /upload/* требуется URL
Я не определил в своем запросе, что есть вложение, и я не вижу никакой ошибки в адресах электронной почты.
Пожалуйста помоги.
Мой код:
var google = require('googleapis');
var gmailClass = google.gmail('v1');
var email_lines = [];
email_lines.push("From: \"Some Name Here\" <rootyadaim@gmail.com>");
email_lines.push("To: hanochg@gmail.com");
email_lines.push('Content-type: text/html;charset=iso-8859-1');
email_lines.push('MIME-Version: 1.0');
email_lines.push("Subject: New future subject here");
email_lines.push("");
email_lines.push("And the body text goes here");
email_lines.push("<b>And the bold text goes here</b>");
var email =email_lines.join("\r\n").trim();
var base64EncodedEmail = new Buffer(email).toString('base64');
gmailClass.users.messages.send({
auth: OAuth2Client,
userId: "me",
message:
{
raw: base64EncodedEmail
}
},
function(err, results){});
1 ответ
Решение
Внесены изменения в версию 1.0.3 Google API. Попробуйте использовать следующий синтаксис:
gmailClass.users.messages.send({
auth: OAuth2Client,
userId: "me",
resource:
{
raw: base64EncodedEmail
}
}
Убедитесь, что base64EncodedEmail безопасен для URL. Вы можете использовать base64EncodedEmail.replace(/\+/g, '-').replace(/\//g, '_')
код, размещенный mscdex. Этот синтаксис работал для версии 1.0.11