簡単にグーグルスプレッドシートを使ってメールの一斉送信をしてみた


はじめに

特定のグループのメンバーそれぞれに同じ内容のメールを送りたい。

イベントの告知とか、
年末年始の挨拶とか、
退職時の挨拶とか。

Pythonとかプログラミングのことよくわからないし、
複雑なことをしたくないけど、
アドレスとか名前とか細かい部分は変えながら、
エクセルにまとめてある情報を使ってメールを一斉送信したい。

そんな時の簡単な方法として、
Googleのスプレッドシートでマクロを使ってメールを送信する方法をまとめた。

今回の方法からさらに応用したい人は、
参考ページを見てみてください

必要なもの

Gmailのアカウント
Google Chrome

方法

スプレッドシートの作成

ChromeでGoogleのトップページかGmailのページの右上にある「・・・」メニューから、
「ドライブ」→「新規」→「Google スプレッドシート」を選択する。

シートの名前は適当に「一斉送信」とかで。

必要な情報を入力する

感覚的にはエクセルのシートなので、
名前とかメールアドレスとかいろいろ入れていく。

マクロを作る

スプレッドシート内の「ツール」タブにて、
「スクリプトエディタ」を選択すると以下のような画面が出てくる。

この中の関数を下記のように書き換える

function mailSend() {  //1行目を書き換え

 var mySheet=SpreadsheetApp.getActiveSheet();  //現在編集中のシートを取得
 var rowSheet=mySheet.getDataRange().getLastRow();  //入力したシートの最下列を取得

  for(var i=2;i<=rowSheet;i++){  //編集中シートの2行目の情報から取得する

  var strCompany=mySheet.getRange(i,1).getValue(); //会社(A列)
  var strEmail=mySheet.getRange(i,2).getValue(); //名前(B列)
  var strName=mySheet.getRange(i,3).getValue(); //メールアドレス(C列)
  var strFrom="[email protected]"; //From欄(自分が使ってるメールアドレス)
  var strSender="piyopiyo"; //送信者の名前
  var strcc="[email protected]"; //CCのアドレス


  var strSubject="Mail Send";  //メールのタイトル
  var strBody=strCompany + "\n" +  strName + " 様\n" + "\n" +"\
本文を入れてください" + "\n\n"+ "\
書き方はいろいろなパターンでできます";   //メールの本文

  GmailApp.sendEmail(  //メールの送信処理
    strEmail,
    strSubject,
    strBody,
    {
      from: strFrom,
      name: strSender,
      cc: strcc
    }
  ); 
  }
}

『\n』は実際に表示されるメール内での改行を意味します。
『\』はスクリプト内だけでの見た目の改行を意味します。
『strBody』内での空白行は入れないでください。
エラーになって保存できなくなります。

必要な部分は適宜変更する。

スクリプトができたら「Ctrl」+「s」で適当な名前で保存する。

メールを送ってみる

スプレッドシートの画面に戻り、「ツール」→「マクロ」→「インポート」を選択し、
上記で作ったスクリプトをインポートする。

インポート成功後は作ったマクロが選べるようになっているため、
実際に実行し、動くかどうか確認する。

初めて実行した場合はGmailアカウント使用の許諾を求められるため、
許可を選択する。

参考ページ

初心者でも簡単!Google Apps ScriptでGmailを操作してメールを送る方法
Googleスプレッドシートで、一括送信メールを送る方法]
Google Apps Scriptで指定時刻にメールを送信するシステムを作ってみた