GASのメール送信で添付ファイルを付けて送る方法(Googleドライブのファイル送付)

Google Apps Script(GAS)でメール送信する際に、文章だけでなく、ファイル添付したいケースがあります。

そこで、GASのMailAppを利用して、Googleドライブのファイルを添付してメールを送る方法を解説します。

Google Apps Script(GAS)でメール送信

Google Apps Script(GAS)には、メール送信に関する機能としてMailAppクラスが用意されています。

このMailAppクラスで使用できるsendEmailメソッドに対し、メール送信に必要な引数を指定することで、GASスクリプト実行でメールを送ることができます。

Google Apps Script(GAS)でメールを送る方法!コード1行で自動メール送信を実現

上記の記事ではMailApp.sendEmailメソッドを使い、たった1行のGASコードを実行するだけで、メールを自動送信する方法を解説しています。

GASのメールで添付ファイルも送りたい

前述の記事ではGoogle Apps Script(GAS)では、シンプルなテキストメールを送信する方法を紹介しました。

しかし、メールを送る業務には、添付ファイルを付けて送るケースも多いです。

例えば、シフト表やお知らせのPDFファイルをメールに添付して、関係者に連絡する場合などです。

その場合には、単なるメール本文を送る以外に、添付ファイルをつけてメールを送るという処理が必要になります。

Googleドライブのファイルを添付可能

Google Apps Script(GAS)でメールを送るMailApp.sendEmailメソッドは、メールに必要な一通りの機能を備えています。

そのため、添付ファイルも付けてメール送信することがGASで実現可能です。

添付したいファイルをGoogleドライブから読み込んできて、添付ファイルとして、sendEmailメソッドの引数として指定し、実行すると、添付ファイル付きメールを送ることができます。

MailApp.sendEmail(address, mailTitle, mailText, options);

4番目の引数としてオプションの変数で添付ファイルを指定します。

options = {
"attachments":"添付したいファイル",
};

なお、「添付したいファイル」で指定するのは、GASスクリプトでファイルを扱えるようにしたBlob形式の変数を指定します。

GASで宛先メールアドレス、件名、本文も用意したうえで、MailApp.sendEmailメソッドを実行すると、ファイル添付したメールを送れます。

GASでファイル添付してメール送信する方法

https://drive.google.com/file/d/12tfLWV3Uj4UG14AQJeM-HkfjPng5bMCB/view?usp=sharing

Google Apps Script(GAS)で、Googleドライブに存在するファイルを添付してメールを送るサンプルコードを解説します。

まず、添付するファイルを用意するために、Googleドライブにテスト用png画像をアップロードしています。

Google Apps Scriptによるメール送信で添付するためのGoogleドライブに格納した画像ファイル

この画像ファイルをGASで読み込むために、Googleドライブ上のファイルIDを取得します。

ファイルIDを確認するために、ファイルを右クリックして「リンクを取得」で表示されるファイルへのリンクURLをコピーします。

GoogleドライブのファイルをGASから読み込むため、ファイルIDをリンクURLから取得する

コピーしたURLの赤字部分が画像ファイルのIDです。

https://drive.google.com/file/d/12tfLWV3Uj4UG14AQJeM-HkfjPng5bMCB/view?usp=sharing

このファイルIDをGASスクリプトで指定することでGoogleドライブのファイルを読み込むことができます。

Googleドライブからファイル取得→添付してメール送信するGASのサンプルコードは以下になります。

function myFunction() {
//メールアドレスの宛先を記述する
let address = "aaa@auto-worker.com";
//メールの件名を記述する
let mailTitle = "添付テストメール";
//メール本文を記述する
let mailText = "画像イメージの添付ファイル付きメールです。";
//Googleドライブから画像イメージを取得する
let attachImg = DriveApp.getFileById("12tfLWV3Uj4UG14AQJeM-HkfjPng5bMCB").getBlob();
//オプションで添付ファイルを設定する
let options = {
"attachments":attachImg,
};
//MailAppで宛先、件名、本文、添付ファイルを引数にしてメールを送付
MailApp.sendEmail(address, mailTitle, mailText, options);
}

Google Apps Script(GAS)のMailAppでGoogleドライブのファイルを添付ファイルで付けてメール送信するサンプルコード

9行目のコードで、GoogleドライブからファイルIDを指定して読み込み、getBlobでファイルとして取得しています。

11-13行目でオプション変数のオブジェクトに添付ファイルとして指定し、15行目でsendMailメソッドで添付メールを送ります。

このGASスクリプトを実行すると、宛先のメールアドレスに添付ファイル付きメールが届きます。

Googleドライブにある画像ファイルをGoogle Apps Script(GAS)のMailApp.sendEmailメソッドで添付ファイル付きメールが送信され、受信できた

このように、MailApp.sendEmailメソッドの4番目のオプション引数に、添付ファイルを指定することで、添付ファイル付きメールの送信が可能になります。

複数宛先やCC/BCCを付けてGASでメールを送る

GASのMailAppクラスのsendEmailメソッドでは、添付ファイルを送る他に、複数のメールアドレス宛やCC/BCCを付けてメールを送ることも可能です。

GASのメール送信で複数の宛先に送る方法(MailApp.sendEmail)

GASのメール送信で宛先以外にCCやBCCを追加する方法

本記事で紹介した添付ファイルを付けてGASで自動でメールを送る際に、複数宛先を指定することも可能になります。

PDFのお知らせやレポートを定例メールを手動送付している場合は自動化できるかもしれません。

まとめ・終わりに

今回、Google Apps Script(GAS)で、Googleドライブのファイルを添付ファイルにしてメールを送る方法を紹介しました。

MailApp.sendEmailメソッドで添付ファイルを引数として設定することで添付ファイル付きのメールもGASスクリプトで自動化が可能です。

毎週や毎月など定期的にお知らせやレポートのPDFを送るといったメール業務がある場合、GASの添付メール送信が活用できるので、ぜひ活用してみてください。