7 простых способов отправить электронное письмо с вложениями PDF с Google Диска с помощью Apps Script

Отправка электронного письма с вложением PDF с Google Диска с помощью Apps Script – это мощный метод автоматизации, который поможет вам сэкономить время и усилия. В этой статье блога мы рассмотрим несколько простых способов выполнения этой задачи, дополненных разговорными объяснениями и примерами кода. Так что будьте готовы повысить уровень своей электронной почты с помощью этих удобных приемов Apps Script!

Метод 1: использование класса GmailApp
Первый метод предполагает использование класса GmailApp, который обеспечивает простой способ отправки электронных писем из вашей учетной записи Gmail. Чтобы отправить электронное письмо с вложением PDF, выполните следующие действия:

function sendEmailWithPDFUsingGmailApp() {
  var recipient = 'example@example.com';
  var subject = 'Check out this PDF!';
  var body = 'Hey there, I'm sending you a PDF from Google Drive.';
  var file = DriveApp.getFileById('your_pdf_file_id');
  GmailApp.sendEmail(recipient, subject, body, {
    attachments: [file.getAs(MimeType.PDF)],
  });
}

Метод 2: использование класса MailApp
Подобно предыдущему методу, вы также можете использовать класс MailApp для отправки электронных писем. Вот пример отправки электронного письма с вложением PDF:

function sendEmailWithPDFUsingMailApp() {
  var recipient = 'example@example.com';
  var subject = 'Check out this PDF!';
  var body = 'Hey there, I'm sending you a PDF from Google Drive.';
  var file = DriveApp.getFileById('your_pdf_file_id');
  MailApp.sendEmail(recipient, subject, body, {
    attachments: [file.getAs(MimeType.PDF)],
  });
}

Метод 3: использование расширенной службы Gmail
Расширенная служба Gmail обеспечивает больший контроль над процессом отправки электронной почты. Чтобы включить эту услугу, выполните следующие действия:

  1. Перейдите в редактор скриптов приложений.
  2. Нажмите «Ресурсы» в меню.
  3. Выберите «Расширенные службы Google».
  4. Включите «Gmail API».

После включения вы сможете использовать следующий код для отправки электронного письма с вложением PDF:

function sendEmailWithPDFUsingAdvancedService() {
  var recipient = 'example@example.com';
  var subject = 'Check out this PDF!';
  var body = 'Hey there, I'm sending you a PDF from Google Drive.';
  var file = DriveApp.getFileById('your_pdf_file_id');
  var message = {
    to: recipient,
    subject: subject,
    body: body,
    attachments: [file.getAs(MimeType.PDF)],
  };
  Gmail.Users.Messages.send(message, 'me');
}

Метод 4. Использование UrlFetchApp и Gmail API
Другой подход — использовать класс UrlFetchApp для прямого взаимодействия с Gmail API. Вот пример фрагмента кода:

function sendEmailWithPDFUsingUrlFetchApp() {
  var recipient = 'example@example.com';
  var subject = 'Check out this PDF!';
  var body = 'Hey there, I'm sending you a PDF from Google Drive.';
  var file = DriveApp.getFileById('your_pdf_file_id');
  var message = {
    to: recipient,
    subject: subject,
    body: body,
    attachments: [
      {
        filename: 'YourPDF.pdf',
        mimeType: 'application/pdf',
        bytes: file.getBlob().getBytes(),
      },
    ],
  };
  var options = {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(message),
    headers: {
      Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
    },
  };
  UrlFetchApp.fetch(
    'https://www.googleapis.com/gmail/v1/users/me/messages/send',
    options
  );
}

Метод 5. Использование Drive API
Вы также можете напрямую использовать Drive API для отправки электронного письма с вложением PDF. Вот пример фрагмента кода:

function sendEmailWithPDFUsingDriveAPI() {
  var recipient = 'example@example.com';
  var subject = 'Check out this PDF!';
  var body = 'Hey there, I'm sending you a PDF from Google Drive.';
  var file = DriveApp.getFileById('your_pdf_file_id');
  var message = {
    raw: Utilities.base64EncodeWebSafe(
      createEmail(recipient, 'me', subject, body, file.getBlob())
    ),
  };
  Drive.Files.insert(message);
}
function createEmail(to, from, subject, body, attachment) {
  var email = [
    'Content-Type: multipart/mixed; boundary="foo_bar_baz"\n',
    'MIME-Version: 1.0\n',
    'to: ',
    to,
    '\n',
    'from: ',
    from,
'\n',
    'subject: ',
    subject,
    '\n\n',
    '--foo_bar_baz\n',
    'Content-Type: text/plain; charset="UTF-8"\n',
    'MIME-Version: 1.0\n',
    'Content-Transfer-Encoding: 7bit\n\n',
    body,
    '\n\n',
    '--foo_bar_baz\n',
    'Content-Type: application/pdf; name="YourPDF.pdf"\n',
    'MIME-Version: 1.0\n',
    'Content-Transfer-Encoding: base64\n',
    'Content-Disposition: attachment; filename="YourPDF.pdf"\n\n',
    Utilities.base64Encode(attachment.getBytes()),
    '\n\n',
    '--foo_bar_baz--',
  ].join('');
  return Utilities.newBlob(email).getBytes();
}

Метод 6: использование надстройки для автоматизации электронной почты
Если программирование вам не по душе, вы можете изучить популярные надстройки для автоматизации электронной почты, доступные в G Suite Marketplace. Эти надстройки предлагают удобные интерфейсы для отправки электронных писем с вложениями в формате PDF прямо с Google Диска. Примеры: «Еще одно слияние писем», «Издатель форм» и «Автократ».

Метод 7: использование сторонних платформ интеграции.
В качестве альтернативы вы можете использовать сторонние платформы интеграции, такие как Zapier или Integromat, которые обеспечивают плавное соединение между различными приложениями. Эти платформы предлагают готовые рабочие процессы для отправки электронных писем с вложениями в формате PDF с Google Диска без написания кода.

Отправка электронных писем с вложениями в формате PDF с Google Диска с помощью Apps Script теперь доступна вам. Предпочитаете ли вы кодирование или использование надстроек или платформ интеграции, существует множество методов, соответствующих вашим потребностям. Так что вперед и автоматизируйте свой рабочий процесс с электронной почтой уже сегодня!