Как отправить pdf через gmail api

Я реализовал gapi/0Auth2 в другом месте своего кода, и все работает, за исключением того, что прикрепленный PDF-файл не работает. PDF-файл не может быть предварительно просмотрен и пуст при загрузке.

´´´

function stuffer() {
var sender = "[email protected]";
var receiver = "[email protected]";

let dem = pdfCon("ny brab verder");
console.info(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.info(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 и просматривал разные сообщения, но, похоже, нет документации по этой конкретной проблеме.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из вашего скрипта я подумал, что возвращаемое значение из pdfCon("ny brab verder") является URL-адресом данных. Итак, как насчет следующей модификации?

От:

let dem = pdfCon("ny brab verder");

К:

let dem = pdfCon("ny brab verder").split(",")[1];
  • В этой модификации заголовок удален из URL-адреса данных. При этом извлекаются только данные base64.

Другие вопросы по теме