gmail发送api失败,错误代码为400meteor

我想在我的meteor应用程序中使用gmail api发送邮件,

Error in calendar insert: Error: failed [400] { "error": { "errors": [ { "domain": "global", "reason": "invalidArgument", "message": "'raw' RFC822 payload message string or uploading message via /upload/* URL required" } ], "code": 400, "message": "'raw' RFC822 payload message string or uploading message via /upload/* URL required" } } 

我试了下面,

 "sendGmail": function(str) { this.unblock(); var url = "https://www.googleapis.com/gmail/v1/users/me/messages/send"; var encodedMail = new Buffer(str).toString("base64").replace(/\+/g, '-').replace(/\//g, '_'); try { Meteor.http.post(url, { 'headers' : { 'Authorization': "Bearer " + Meteor.user().services.google.accessToken, 'Content-Type': 'application/json' }, 'body': JSON.stringify({ "raw": encodedMail }) }); } catch(e){ console.log("Error in calendar insert: " + e); } finally { return true; } } 

传递下面的string值作为参数:

  var str = "Content-Type: text/plain; charset=\"UTF-8\"\n" + "MIME-Version: 1.0\n" + "Content-Transfer-Encoding: 7bit\n" + "to: arunmail2u@gmail.com\n" + "from: arunsugan08@gmail.com\n" + "subject: Meteor test mail\n\n" + "Hi, this is test mail from meteor application"; Meteor.call('sendGmail', str); 

一个主体string是作为content给出的,而不是body 。 检查文档 。

内容 – 获取一个普通的string,并将其设置在HTTP请求主体上。