GASを使った簡単なメール送信!画像添付をスムーズに行う方法

急にメールで画像を送りたいんだけど、どうやったらいいんだろう…GASで簡単にできるって聞いたんだけど。
猫男
猫男
catman
catman
よし、catmanがGASを使ったメール送信と画像添付を教えてやろう。さっそく始めるぞ。

GASを使った基本的なメール送信

まずは復習がてらに、GASでメールを送信してみよう。

GmailApp.sendEmail()を利用してメールを送信する。


function sendEmail() {
 var recipient = "example@example.com";
 var subject = "こんにちは";
 var body = "こんにちは、これはGASからのメールです。";
 GmailApp.sendEmail(recipient, subject, body);
}

このコードでは、GmailAppのsendEmailメソッドを使って、指定された宛先にメールを送信している。

recipient, subject, bodyの3つの引数で、宛先、件名、本文を設定できるぞ。

画像を添付してメールを送る

メールに画像を添付するには、GmailApp.sendEmail()の添付機能を活用することがポイントだ。

GASで画像を添付したメールを送信する方法

ストレージ上の画像をメールに添付する場合、以下のスクリプトが役に立つ。


function sendEmailWithAttachment() {
 var recipient = "example@example.com";
 var subject = "画像添付のテスト";
 var body = "これはGASで送信した画像付きメールです。";
 
 var fileId = "ファイルのIDをここに入力";
 var file = DriveApp.getFileById(fileId);
 
 GmailApp.sendEmail(recipient, subject, body, {
 attachments: [file.getAs(MimeType.JPEG)]
 });
}

DriveApp.getFileById()メソッドでGoogleドライブの画像を取得し、getAsを使ってJPEG形式で添付している。

attachmentsオプションを使うことで、画像やその他のファイルを添付することができる。

複数の画像を添付したメールを送信する方法

複数の画像を添付したい場合も、GASでは簡単に実装できる。

以下に、複数の画像を添付する方法を示そう。


function sendEmailWithMultipleAttachments() {
 var recipient = "example@example.com";
 var subject = "複数画像のテスト";
 var body = "このメールには複数の画像が添付されています。";
 
 var fileIds = ["ファイルID1", "ファイルID2"];
 var attachments = fileIds.map(function(id) {
 return DriveApp.getFileById(id).getAs(MimeType.JPEG);
 });
 
 GmailApp.sendEmail(recipient, subject, body, {
 attachments: attachments
 });
}

fileIdsの配列内にファイルのIDを設定し、それをmap関数でMimeType.JPEGとして取得する手法だ。

同時に異なる複数のファイル形式を添付する場合も、この方法で可能だ。

練習問題

以下のステップに従い、GASを利用して任意のPDFファイルを添付したメールを送信するスクリプトを書いてみよう。

  1. スクリプトの中で、送信先のメールアドレス、件名、本文を設定する。
  2. Googleドライブ上のPDFファイルを取得する。
  3. PDFファイルをメールに添付して送信する。

 

 

解答・解説


function sendEmailWithPdfAttachment() {
 var recipient = "example@example.com";
 var subject = "PDFファイル添付のテスト";
 var body = "このメールにはPDFファイルが添付されています。";
 
 var fileId = "PDFファイルのIDをここに入力";
 var file = DriveApp.getFileById(fileId);
 
 GmailApp.sendEmail(recipient, subject, body, {
 attachments: [file.getAs(MimeType.PDF)]
 });
}

このスクリプトでは、DriveApp.getFileByIdメソッドでGoogleドライブのPDFファイルを特定し、getAs(MimeType.PDF)を使ってPDFとして添付することでメールを送信している。

recipient, subject, bodyの設定は先ほどまでの例と同様だ。

なるほど!これなら僕にもできそう!GASって便利だねー。
猫男
猫男
catman
catman
その調子さ。どんどん試して、GASをマスターしていこう。