GASを使った簡単なメール送信!画像添付をスムーズに行う方法
急にメールで画像を送りたいんだけど、どうやったらいいんだろう…GASで簡単にできるって聞いたんだけど。

猫男

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ファイルを添付したメールを送信するスクリプトを書いてみよう。
- スクリプトの中で、送信先のメールアドレス、件名、本文を設定する。
- Googleドライブ上のPDFファイルを取得する。
- 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
その調子さ。どんどん試して、GASをマスターしていこう。