收件人地址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
更多推荐
需要JavaScript的收件人地址gmail api
发布评论