最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

需要JavaScript的收件人地址gmail api

网站源码admin19浏览0评论

需要JavaScript的收件人地址gmail api

需要JavaScript的收件人地址gmail api

我正在尝试通过Javascript客户端的Gmail API发送带有jpeg文件的邮件。但我收到错误消息:需要收件人地址。到目前为止,我编写的代码如下:

SendMails() {
    var img=getBase64();
    const mails = [
      'Content-Type: multipart/mixed; boundary="foo_bar_baz"\r\n',
      'MIME-Version: 1.0\r\n',
      'to: [email protected]\r\n',
      'from: [email protected]\r\n',
      'subject: Subject Text\r\n\r\n',

      '--foo_bar_baz\r\n',
      'Content-Type: text/plain; charset="UTF-8"\r\n',
      'MIME-Version: 1.0\r\n',
      'Content-Transfer-Encoding: 7bit\r\n\r\n',

      'The actual message text goes here\r\n\r\n',

      '--foo_bar_baz\r\n',
      'Content-Type: image/jpeg\r\n',
      'MIME-Version: 1.0\r\n',
      'Content-Transfer-Encoding: base64\r\n',
      'Content-Disposition: attachment; filename="example.jpg"\r\n\r\n',

      img, '\r\n\r\n',

      '--foo_bar_baz--'
    ].join('');
    const path = 'upload/gmail/v1/users/me/messages/send?uploadType=multipart';
    const mail = btoa(mails).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');

    gapi.client.request({
      path: path,
      headers: {
        'Content-Type': 'message/rfc822'
        // mimeType: 'message/rfc822'
      },
      method: 'POST',
      body: {
        data: mail
      }
    }).then(response=> {
      console.log('Response:', response);
    }).catch(err => {
      console.log('Error:', err);
    });
  }

这将导致错误响应代码400,原因:“ invalidArgument”,消息:“需要收件人地址。我究竟做错了什么?如果有人可以对此有所阐明,将不胜感激!

回答如下:

我认为可以使用您的请求正文。那这个修改怎么样?

发件人:

const path = 'upload/gmail/v1/users/me/messages/send?uploadType=multipart';
const mail = btoa(mails).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');

gapi.client.request({
  path: path,
  headers: {
    'Content-Type': 'message/rfc822'
    // mimeType: 'message/rfc822'
  },
  method: 'POST',
  body: {
    data: mail
  }
}).then(response=> {
  console.log('Response:', response);
}).catch(err => {
  console.log('Error:', err);
});

收件人:

const path = 'upload/gmail/v1/users/me/messages/send';  // Modified
// const mail = btoa(mails).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); // Deleted
gapi.client.request({
  path: path,
  headers: {'Content-Type': 'message/rfc822'},
  method: 'POST',
  body: mails  // Modified
}).then(response=> {
  console.log('Response:', response);
}).catch(err => {
  console.log('Error:', err);
});

注意:

  • 此修改后的脚本假设您的gapi.client可用于通过Gmail API发送邮件。

参考:

  • gapi.client.request(args)
  • Users.messages: send
发布评论

评论列表(0)

  1. 暂无评论