我试图通过Google API发送电子邮件。
我在node.js中使用googleapis进行Google API访问。
我的问题是,当我尝试发送没有附件的简单邮件时,我收到以下错误:
'原料' 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){});
答案 0 :(得分:13)
对Google API的1.0.3版进行了更改。请尝试使用以下语法:
gmailClass.users.messages.send({
auth: OAuth2Client,
userId: "me",
resource:
{
raw: base64EncodedEmail
}
}
确保base64EncodedEmail是url安全的。您可以使用mscdex发布的base64EncodedEmail.replace(/\+/g, '-').replace(/\//g, '_')
代码。此语法适用于v.1.0.11