发送邮件失败通过谷歌api与javascript [英] Failed sending mail through google api with javascript

查看:313
本文介绍了发送邮件失败通过谷歌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 ='发送Gmail'

var base64EncodedEmail = btoa(
Content-Type:text / plain; charset = \UTF -8\\\\
+
Content-length:5000\\\
+
Content-Transfer-Encoding:message / rfc2822\\\
+
to :someone@someone.nl\\\
+
from:\test\< test@gmail.com> \\\
+
主题:Hello world\\\
\\\
+

实际的消息文本在这里
).replace(/ \ + / g,' - ')替换(/\//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);
});
});

}


解决方案

我已经找到了我自己的答案。问题是,当您在电子邮件中发送附件时,可以使用正文中的消息。



如果没有附件,查询看起来像我在这里写下来

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


I'm trying to send an email through Google API with JavaScript.

My issue is that when I try to send a simple mail with no attachments, I get the following error:

'raw' RFC822 payload message string or uploading message via /upload/* URL required`

My code

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

}

解决方案

After days i had found the answer by my own. The problem was that the 'message' in the body only can be used when you send an attachment in the email.

If you have no attachment the query looks like I wrote down here

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

这篇关于发送邮件失败通过谷歌api与javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆