如何通过 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数据。