GASでメールにPDFファイルを簡単に添付する方法とその活用例

GASでメールにPDFファイルを添付する方法ってどうやるんだろう?簡単にできるなら、業務で役立ちそうだな。
猫男
猫男
catman
catman
そうか、ならcatmanが「GASでメールにPDFを添付する方法」を教えてやろう!

GASでメールにPDFファイルを添付する基本ステップ

GASを使えば、簡単にメールにPDFファイルを添付可能だ。まず、その方法を基本から解説しよう。

PDFを生成するスクリプトを書く

スプレッドシートから送信するPDFを生成するぞ。まずは送るブツを作らんとな。

以下のようなスクリプトをGASに書く。


function createPDF() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ');
  const folder = DriveApp.getFolderById('フォルダID');
  const pdf = DriveApp.createFile(sheet.getAs('application/pdf'));
  pdf.moveTo(folder);
  return pdf;
}

ここではSpreadsheetApp.getActiveSpreadsheet()でアクティブなスプレッドシートを取得し、DriveApp.createFile()でPDFファイルを作成し、指定されたフォルダに保存する。

メールにPDFを添付して送信する

GASでメールにPDFを添付して送信する方法も見てみよう。


function sendEmailWithPDF() {
  const emailAddress = 'example@example.com';
  const subject = 'PDFファイルの送信';
  const body = 'こちらがご希望のPDFファイルです。'; 
  
  const pdf = createPDF();
  
  GmailApp.sendEmail(emailAddress, subject, body, {
    attachments: [pdf]
  });
}

GmailApp.sendEmail()を使い、メールアドレス、件名、本文とともにattachmentsとしてPDFを指定して送信する。

GASでメールにPDFを添付するメリット

GASでメールにPDFを添付することには多くのメリットがある。ここでいくつか紹介しよう。

自動化による業務効率化

手動でファイルを添付して送信する手間が省けるため、業務効率が向上する。

大量のメールも一括処理

GASを使えば、複数のメールを一度に送信することも可能だ。これにより大量のメール処理が簡単になる。

練習問題

次のスクリプトを参考にして、テンプレートPDFを使わずにコンテンツを指定してメールに添付し送信してみよう。

解答・解説


function sendCustomPDFEmail() {
  const folderId = 'フォルダID';
  const folder = DriveApp.getFolderById(folderId);
  const content = 'This is your custom PDF content.';

  const file = DriveApp.createFile('custom.pdf', content, 'application/pdf');
  file.moveTo(folder);

  const emailAddress = 'example@example.com';
  const subject = 'Custom PDF';
  const body = 'Please find attached your custom PDF.';

  GmailApp.sendEmail(emailAddress, subject, body, {
    attachments: [file]
  });
}

このスクリプトでは、DriveApp.createFile()を使ってPDFコンテンツを直接作成し、GmailApp.sendEmail()でメールに添付して送信している。

PDFの内容を書き込む際には、引数としてファイル名、コンテンツ、MIMEタイプの順で指定する。