【发布时间】:2020-08-23 11:52:30
【问题描述】:
我正在尝试通过 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: limon14203165@gmail.com\r\n',
'from: liibd7@gmail.com\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”,消息:“需要收件人地址。 我究竟做错了什么?如果有人能对此有所了解,将不胜感激!
【问题讨论】:
标签: javascript node.js typescript gmail-api