在使用 Gmail API 时不断收到退回邮件



我尝试使用gmail API从节点应用程序发送电子邮件。这是我的代码:

function sendEmail(auth) {
    var gmail = google.gmail('v1');
    gmail.users.messages.send({
        auth,
        userId: 'me',
        resource: {
            payload: {
                mimeType: 'message/rfc822',
                headers: [{name: 'To', value: 'ayeritsian@gmail.com'},
                    {name: 'Subject', value: 'test'},
                    {name: 'From', value: 'ayeressian2@gmail.com'}]
            },
            raw: new Buffer('test123').toString('base64')
        },
        internalDate: Date.now()
    }, function (err, bla, IncommingMessage) {
        console.log(arguments);
        console.log('end');
    });
}

当我运行应用程序时,我不断收到退回消息"发生错误。您的消息未发送。错误消息的描述性不够,几乎没有关于google-api节点包的文档。如果有人能帮助我,我将不胜感激。

您需要将整个电子邮件放在邮件的"原始"字段中,解析出的邮件不适用于发送。 C.F. https://developers.google.com/gmail/api/guides/sending

这类似于Python,我相信你可以翻译成node.js :) email = "From: myemail@gmail.comrnTo: someguy@gmail.comrnSubject: hey check this outrnrnhi someguy, this is my email body here. it's plain text." message.raw = base64_websafe(email)

对于它的价值,我有一个与你类似的问题。我在应用程序/用户的收件箱中不断收到一条模糊的错误消息。

From: nobody@gmail.com
An error occurred. Your message was not sent.

为我解决问题的是将消息 ID 属性添加到我创建的缓冲区中。基本上,我的信息不是按照他们在此处文档中提到的 rfc822 规范编写的。😁

这是我引用的文档,下面是我的片段。

module.exports = function (policyMeta) {
  log.info('BUILDING EMAIL');
  const message = 'From: xxx@xxx.comrn' +
                  'To: xxx@xxx.comrn' +
                  `Date: ${new Date()}rn` +
                  'Subject: Howdy Mundorn' +
                  `Message-ID: ${uuid()}rn` +
                  'look mom i send a message';
  const params = {
    auth: Auth.getGoogleAuthClient(),
    userId: 'me',
    media: { mimeType: 'message/rfc822' },
    resource: {
      raw: new Buffer(message).toString('base64')
    }
  };
  return sendEmail(params).then((res) => console.log(res, '🔥🔥success🔥🔥'));
};

相关内容

  • 没有找到相关文章