使用gmail nodejs api获取电子邮件退回

时间:2016-11-08 09:48:47

标签: node.js gmail-api google-api-nodejs-client rfc2822

这是我用来发送电子邮件的代码。

function sendMessage(auth) {
 var gmail =google.gmail('v1');

 var email_lines =[];
 email_lines.push("From:a@gmail.com");
 email_lines.push("To:b@gmail.com");
 email_lines.push('Content-type:text/html;charset=iso-8859-1');
 email_lines.push('MIME-Version:1.0');
 email_lines.push("Subject:Testing ");
 email_lines.push("Hi,");
 email_lines.push("Testing");
 email_lines.push("<b>Hi</b>");

 var email =email_lines.join("\r\n").trim();
 var base64EncodedEmail = new Buffer(email).toString('base64');

base64EncodedEmail=base64EncodedEmail.replace(/\//g,'_').replace(/\+/g,'-');
gmail.users.messages.send({
  auth,
 'userId': 'me',

'resource': {
     'raw': base64EncodedEmail
   }

},function(err, response) {
 if (err) {
   console.log('The API returned an error: ' + err);
   return;
 }
console.log(response);
});
}

我收到退回电子邮件 `发生错误。您的邮件未发送。

嗨,测试嗨日期:星期二,2016年11月8日01:35:08 -0800消息ID:`

请帮忙。

1 个答案:

答案 0 :(得分:0)

@Tholle - 这对我有用,额外的空行给了我很多麻烦。

我正在使用Javascript进行测试,下面是我的原始电子邮件:

From: xxx@gmail.com
To: xxx@gmail.com
Subject: Test Subject
Reply-To: xxx@gmail.com
Date: Fri Dec 30 2016 09:54:09 GMT-0500 (EST)

Test Body

有些帖子说需要回复,但我认为这里的日期不是必需的。