※当サイトの商品・サービスのリンク先にPRを含みます。

Google Apps Script 時短ツール

【コピペOK】GASでメールの送信で添付ファイルを追加

お仕事おつにゃッス🐈

文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!

大量のメールにファイルを添付して送信すると、手間も時間もかかって残業が増えますよね?

この記事ではそのお悩みを、コピペOKのGoogle Apps Scriptのコードで解決します。

あっきょ
この記事は以下で悩んでいる人におすすめ!

  • 大量のメールを送信する時間を減らしたい
  • ファイルを添付するけど、付け忘れのミスが起こると怖い
  • プログラミングでJavaScriptを学んだけど、何を作っていいかわからない

誰でも無料で簡単にできますので、お気軽に学んでいきましょう!

添付ファイルとメールを送信するイメージ

Google Apps Scriptで添付ファイルをつけて自動でメールを送信するイメージ

1クリックでメールに画像などのファイルを添付して送信します。

例えば、50件ほどメールにJPEGファイルを付けて送信しようとすると、膨大な時間とファイル付け忘れのミスが考えられます。

GASならずべて自動で同じ操作をするので、作業時間と送信ミスの削減を期待できます。

ファイルを添付して送信する準備

Google Apps Script でファイルを添付して送信する準備をします。ファイルは3つ必要です。

必要なファイル

  • Google スプレッドシート  ・・・ 顧客データの書き込み & コードの貼り付け
  • Google ドキュメント ・・・ メールの本文の作成
  • テスト用のJPEGデータ ・・・ メールの添付ファイルとして使用

Google スプレッドシートの作成

メールアドレスを登録するスプレッドシートを作成します。

この記事では、「姓」,「名」,「メールアドレス」の3項目を登録し、列A から列C の1行目に見出しを記入します。

GASでファイル付きメールを送信するスプレッドシートの項目作成

個別のデータを記入します。後からテスト送信するので、メールアドレスはあなたが所有するアドレスに書き換えます。

GASでファイル付きメールを送信するスプレッドシートのデータ入力

シート名を変更します。右クリックして「リスト」と名前をつけます。Google スプレッドシート は以上です。

GASでファイル付きメールを送信するスプレッドシートの「リスト」シートの作成

Google ドキュメントの作成

Googleドキュメントでメールの本文を作成します。

文章内の {customer} に「リスト」シートから取得した名前( 姓+名 )が入ります。Google ドキュメントの編集は以上です。

GASでファイル付きメールを送信するGoogleドキュメント

添付するファイルの作成

メールに添付するファイルをJPEGにしました。メールに添えるファイルは他のPDFやGIFでも問題ありません。

GASでファイル付きメールを送信するJPEGファイル

サンプルコードを貼り付ける場所

サンプルコードはGoogle スプレッドシートにコピペ。

上バーの「拡張機能」の中にある「Apps Script」をクリックしてコードを貼り付けます。

GASをスプレッドシートに記入する際の「Apps Script」の表示

ファイルを添付して送信するコード

Google Apps Scriptでファイルを添付してメールを送信するコードを掲載します。

解説の項目

  • サンプルコード
  • A.送信するメールの定義
  • B.使用するスプレッドシートの定義
  • C.シートのセル番号を定義
  • D.Google ドキュメントからメール本文を取得
  • E.メールを送信

サンプルコード

ソースコードの全体です。右上にあるマークを押すとコードのコピペが一瞬でできます。また、コード内で文頭にアルファベットが付いているコメントごとに、詳細を説明していきます。

function sendMail() {
 //A.送信するメールの定義
 const senderName = '送り主の名前'; 
 const subject = 'メールのタイトル';
 const DOC_URL = 'ドキュメントのURL'; //メールの本文
 const file = DriveApp.getFileById('添付ファイルのID').getBlob(); //添付ファイル

  //B.使用するスプレッドシートの定義
  const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  const listSheet = spreadSheet.getSheetByName('リスト');  

  //C.シートのセル番号を定義
  const LAST_NAME_COL = 1;    //苗字の列番号
  const FIRST_NAME_COL = 2;   //名前の列番号
  const MAIL_ADDRESS_COL = 3; //メールアドレスの列番号
  const START_ROW = 2;        //for構文で読み込み始める行番号

  //D.Google ドキュメントからメール本文を取得
  const openDoc = DocumentApp.openByUrl(DOC_URL);
  let wholeText = openDoc.getBody().getText(); 

  //E.メールを送信
  const recipient =  listSheet.getRange(START_ROW,MAIL_ADDRESS_COL).getValue();
  const customerName = listSheet.getRange(START_ROW,LAST_NAME_COL).getValue()+ " " +listSheet.getRange(START_ROW,FIRST_NAME_COL).getValue();
  let body = wholeText.replace("{customer}", customerName);
  const options = {
            name : senderName,
            attachments : file
        };
 
  MailApp.sendEmail(recipient, subject, body, options);

}

A, 送信するメールの定義

//A.送信するメールの定義
const senderName = '送り主の名前'; 
const subject = 'メールのタイトル';
const DOC_URL = 'ドキュメントのURL'; //メールの本文
const file = DriveApp.getFileById('添付ファイルのID').getBlob(); //添付ファイル

送信するメールの内容を定義します。

ここでは、クォーテーションの中身を書き直す必要があります。

合計4つを書き換える必要があります。

定数名内容
senderNameメールに表示する送信者の名前
subjectメールに表示する件名
DOC_URLGoogle ドキュメントのURL
file添付するファイルのID

B, 使用するスプレッドシートの定義

//B.使用するスプレッドシートの定義
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = spreadSheet.getSheetByName('リスト');  

メールアドレスを記録したスプレッドシートと「リスト」シートを定義します。

C, シートのセル番号を定義

//C.シートのセル番号を定義
const LAST_NAME_COL = 1;    //苗字の列番号
const FIRST_NAME_COL = 2;   //名前の列番号
const MAIL_ADDRESS_COL = 3; //メールアドレスの列番号
const START_ROW = 2;        //for構文で読み込み始める行番号

名前とメールアドレスのデータを取得し始めるシートの行と列の番号を定義します。

D, Google ドキュメントからメール本文を取得

//D.Google ドキュメントからメール本文を取得
const openDoc = DocumentApp.openByUrl(DOC_URL);
let wholeText = openDoc.getBody().getText(); 

メールの本文を記入したGoogle ドキュメントを取得します。

E, メールを送信

//E.メールを送信
const recipient =  listSheet.getRange(START_ROW,MAIL_ADDRESS_COL).getValue();
const customerName = listSheet.getRange(START_ROW,LAST_NAME_COL).getValue()+ " " +listSheet.getRange(START_ROW,FIRST_NAME_COL).getValue();
let body = wholeText.replace("{customer}", customerName);
const options = {
          name : senderName,
          attachments : file
      };

MailApp.sendEmail(recipient, subject, body, options);

添付ファイル付きのメールを送信します。

シート内のメールアドレスと送信先の氏名を取得し、Google ドキュメントのメール本文を読み込みます。

また、定数 options で送信者の名前と添付ファイルのIDの2つを取得します。

最後にsendEmailメソッドを実行すればメールを送信できます。説明は以上です。

メール送信のテスト

実際に、添付ファイル付きのメールを送信するテストをします。

Apps Scriptの上バーの文字が「sendMail」になっていたら、「実行」を押します。

GASでファイル付きメールを送信するsendMail関数の実行

「このアプリはGoogleで確認されていません」と表示した場合はこちら

【3分で解決】GASの「このアプリはGoogleで確認されていません」を許可する方法

続きを見る

送信先メールを確認します。ファイル付きで受信できていたら成功です。

GASでファイル付きメールを送信するsendMail関数の実行した結果

【便利】GASでメール送信を楽にするコード一覧

この記事では、メールにファイルを添付する方法を紹介しました。

GASを使えば、他にもメール送信を楽にするツールを開発できます。

例えば、BCCかCCに設定して送信1クリックで一斉送信などです。

当サイトではコピペOKサンプルコードも用意していますので、ぜひご活用ください。

【残業2割減】GASでBCCかCCでメールを送信

続きを見る

【残業3割減】GASでメールの一斉送信を自動化

続きを見る

【残業半減】GASでフォーム回答後に文章付きでメールを自動返信

続きを見る

おわりに | GASで市場価値を高めるには

以上、Google Apps Script メールを一斉送信する方法でした。

そのままコピペして日常業務で使いやすいように改修したり、プログラミングの練習や動作確認用に使ってみましょう。

GASでさらに業務効率化する場合、参考書やプログラミングスクールを使うとあなた自身でアプリを作るスキルが身に付きます

GASユーザーのあっきょがおすすめの勉強方法はこちら↓

スクール経験者のあっきょが82社から厳選してるッス!
あっきょ

次回の記事もご期待ください!

-Google Apps Script, 時短ツール
-, , , , , , , , , , , , , , , , , , ,