2016-02-13 42 views
1

我想在我的流星应用程序,它返回下面的错误使用Gmail API发送邮件,Gmail发送API,错误代码400流星失败

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; 
     } 
} 

传递下面字符串值作为参数:

var str = "Content-Type: text/plain; charset=\"UTF-8\"\n" + 
     "MIME-Version: 1.0\n" + 
     "Content-Transfer-Encoding: 7bit\n" + 
     "to: [email protected]\n" + 
     "from: [email protected]\n" + 
     "subject: Meteor test mail\n\n" + 

    "Hi, this is test mail from meteor application"; 

    Meteor.call('sendGmail', str); 

回答

1

甲体字符串作为content,不bodyCheck the documentation

content - 采用普通字符串并将其设置在HTTP请求主体上。

+0

谢谢!数据没有,但'内容'工作正常:-) – Arun

+0

@阿伦啊,你说得对:)内容是一个纯粹的字符串,'数据'接受一个对象,这个对象将被库制成一个字符串。我更新了答案。 – Tholle

相关问题