如何通过 gmail 发送 pdf api
How to send pdf via gmail api
我已经在我的代码中的其他地方实现了 gapi/0Auth2,并且一切正常,只是附加的 PDF 损坏了。 PDF无法预览,下载后为空
´´´
function stuffer() {
var sender = "sender@gmail.com";
var receiver = "reciver@hotmail.com";
let dem = pdfCon("ny brab verder");
console.log(dem);
var mail = [
'Content-Type: multipart/mixed; boundary="foo_bar_baz"\r\n',
"MIME-Version: 1.0\r\n",
"From: " + sender + "\r\n",
"To: " + receiver + "\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: application/pdf\r\n",
"MIME-Version: 1.0\r\n",
"Content-Transfer-Encoding: base64\r\n",
'Content-Disposition: attachment; filename="generated.pdf"\r\n\r\n',
dem,
"\r\n\r\n",
"--foo_bar_baz--",
].join("");
return sendMessage(mail);
}
function sendMessage(message) {
var base64EncodedEmail = btoa(message)
.replace(/\+/g, "-")
.replace(/\//g, "_");
gapi.client.gmail.users.messages
.send({
userId: "me",
resource: {
raw: base64EncodedEmail,
},
})
.then(function (response) {
console.log(response);
});
}
function pdfCon(content) {
var pdf = new jsPDF();
pdf.text(content, 10, 10);
pdf.setProperties({
title: "new Report",
});
return pdf.output("datauristring");
}
´´´
我试过预制 PDF,而不是 jsPDF。
我遵循了 google 上的文档并查看了不同的 post,但似乎没有针对此特定问题的文档。
根据您的脚本,我认为 pdfCon("ny brab verder")
的返回值是数据 URL。那么,下面的修改呢?
发件人:
let dem = pdfCon("ny brab verder");
收件人:
let dem = pdfCon("ny brab verder").split(",")[1];
- 在此修改中,header 从数据 URL 中删除。这样,只检索到base64数据。
我已经在我的代码中的其他地方实现了 gapi/0Auth2,并且一切正常,只是附加的 PDF 损坏了。 PDF无法预览,下载后为空
´´´
function stuffer() {
var sender = "sender@gmail.com";
var receiver = "reciver@hotmail.com";
let dem = pdfCon("ny brab verder");
console.log(dem);
var mail = [
'Content-Type: multipart/mixed; boundary="foo_bar_baz"\r\n',
"MIME-Version: 1.0\r\n",
"From: " + sender + "\r\n",
"To: " + receiver + "\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: application/pdf\r\n",
"MIME-Version: 1.0\r\n",
"Content-Transfer-Encoding: base64\r\n",
'Content-Disposition: attachment; filename="generated.pdf"\r\n\r\n',
dem,
"\r\n\r\n",
"--foo_bar_baz--",
].join("");
return sendMessage(mail);
}
function sendMessage(message) {
var base64EncodedEmail = btoa(message)
.replace(/\+/g, "-")
.replace(/\//g, "_");
gapi.client.gmail.users.messages
.send({
userId: "me",
resource: {
raw: base64EncodedEmail,
},
})
.then(function (response) {
console.log(response);
});
}
function pdfCon(content) {
var pdf = new jsPDF();
pdf.text(content, 10, 10);
pdf.setProperties({
title: "new Report",
});
return pdf.output("datauristring");
}
´´´
我试过预制 PDF,而不是 jsPDF。
我遵循了 google 上的文档并查看了不同的 post,但似乎没有针对此特定问题的文档。
根据您的脚本,我认为 pdfCon("ny brab verder")
的返回值是数据 URL。那么,下面的修改呢?
发件人:
let dem = pdfCon("ny brab verder");
收件人:
let dem = pdfCon("ny brab verder").split(",")[1];
- 在此修改中,header 从数据 URL 中删除。这样,只检索到base64数据。