GASでメールにPDFファイルを簡単に添付する方法とその活用例
GASでメールにPDFファイルを添付する方法ってどうやるんだろう?簡単にできるなら、業務で役立ちそうだな。

猫男

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タイプの順で指定する。