【GAS】面倒な定型メール配信作業を終わらす秘策とは!?
GAS メール一括送信
スポンサーリンク

どうもY-nek0(@Ynek0)です。

よく、定型メールを送る作業があるのですが基本ツールを使用しているかと思います。

配信するメールのテンプレートはあるのですが、

送るデータが各個人違う場合があります。

それで、テンプレートの文面に各個人の

データをコピペ作業を繰り返して貼り付けて送信する

それが20名規模になると話が変わって来ますよね。

今回は、GASを使用したテンプレートメールの各個人の

データ貼り付けに対応した一括送付のやり方をご紹介しますね。

これを覚えてから定型メールの配信作業時間が30分から3分に短縮されました。

非常に効率化に貢献出来るので確認してみて下さい。

では目次はこちら

GASってなに?

Google Apps Scriptといって、Googleが提供するJavaScript ベースの開発環境になります。

端的にいうとGoogleサービス(スプレッドシート、ドキュメント、Gmail、カレンダー等)を

GASで連携させて便利で効率的なツールとして使う事が出来きます。

開発環境って結構敷居高い感じがすると思うのですが、このGASについては

開発環境を準備する必要がなく、GoogleChromeで全て完結する仕組みとなっており

敷居はかなり低い方だと思います。

また、ネット上に様々なサンプルコードがあり、

エンジニアでは無い人でもサンプルコードを少し改変すれば

自分の目的に合った便利なツールができあがるのでぜひ挑戦してみてください。

ちょっと今回はストーリーを用意してみました。

今回はこんな感じの困り事を解決してみるよ!って感じで進めて行きますね。

会社が様々なクラウドサービスを使っており、

新入社員が入る度に複数のアカウントを用意しなくてはならない状態だった。

アカウントを作るのは一括登録などで簡単だが、アカウント情報を送付するのに

テンプレート文面に各アカウントの情報を個別に貼り付ける作業が非常に手間。

これを解決出来たら効率が上がるのに。

スポンサーリンク

GASで作成するもの

今回は、Gmailとスプレッドシート、ドキュメントを

利用して、一括メール配送ツールを作ってみます。

結構簡単に作れるので是非チャレンジしてみて下さい。

GASで作るのは一括メール送信ツール

ちなみに、今回この一括メール送信ツールを作成するとして

下記前提でお話しをさせて頂いております。

  • 既にGoogleアカウントを取得済みである
  • PCを使用してブラウザはGoogleChromeを使用している。

用意するもの

  • Googleスプレッドシート
  • Googleドキュメント
  • Gmail

では最初にやることです。

各ツールを新規作成。

https://google.co.jp

まずは上記にアクセスしましょう。

そのページに移動した後に右上にある四角い奴

をクリックしてサービス一覧が表示されると思います。

そこでドライブ

をクリックしてGoogleドライブのページに遷移します。

Googleドライブの右上に新規ボタンがあると思われますのでそちらをクリックして、

一覧を表示させて下さい。

するとスプレッドシートやドキュメントの項目があると思うのでそちらをクリックすると

別タブでドキュメントとスプレッドシートが立ち上がります。

その動作でドキュメントとスプレッドシートは新規作成されたという認識で問題ないです。

どちらも名前は何でも構いません。わかりやすい名前を付けちゃいましょう。

では、ドキュメント、スプレッドシートどちらも立ち上がったら今度は

スプレッドシートを開いてみましょう。

GASのコードエディタを開く

  1. スプレッドシート上部にあるツールをクリックします。
  2. スクリプトエディタをクリックします。
  3. 別タブでスクリプトエディタが開いたことを確認。

ドキュメントで送信するメールのひな形を作成

ドキュメントで以下のようにメールのひな形を作ります。

名前} さん。お疲れさまです。

社内システム部の仲井です。
業務にて使用するクラウドサービスのアカウントを作成致しましたので
送付させて頂きます。
ご確認の程、宜しくお願いします。

<!-- wp:paragraph -->
<p>●●クラウド<br>ID:{xxクラウドID}<br>PASS:{xxクラウドPASS}</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>●●DBサービス</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>ID:{xxDBサービスID}<br>PASS:{xxDBサービスPASS}</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>●●グループウェア</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>ID:{●●グループウェアID}<br>PASS:{●●グループウェアPASS}</p>
<!-- /wp:paragraph -->

スプレッドシートでデータを入力

各クラウドサイトからCSVを落としてきてスプレッドシートにコピペで全然構いません。

下記図の様な感じに出来れば良いです。

スクリプトエディタでコードを書く

コードをかける人は書いて頂いて、かけない人は下記を挿入してもらえると幸いです。

function sendMail(){
  var setBody =null;
 //スプレッドシート取得
 var DataList =SpreadsheetApp.getActiveSheet(); //シートを取得
 var LastLow =DataList.getDataRange().getLastRow(); //シートの使用範囲のうち最終行を取得
 
 /*ドキュメントIDはドキュメントのURL
   
    『https://docs.google.com/document/d/xxxxxxxxxxxxxxx/edit
   
   の『xxxxxxxxxxxxxxx』部分のみをコピーする事。
 */
 var getDocId =DocumentApp.openById("xxxxxxxxxxxxxxxxx"); //ドキュメントをIDで取得
 var getDocTmp =getDocId.getBody().getText(); //ドキュメントの内容を取得
 
 /* メール表題、fromアドレス、差出人名を準備 */
 var setSubject ="アカウント情報送付"; //表題
 var setFrom ="xxxxxxxxxxxxxx@gmail.com"; //From
 var setSender ="仲井 さとし"; //差出人
 
 /* シートの全ての行について社名、姓名を差し込みログに表示*/
 for(var i=2;i<=LastLow;i++){

   //名前を取得
   var setName=DataList.getRange(i,1).getValue();
   //●●クラウドID・PASS取得
   var setServiceID1=DataList.getRange(i,2).getValue();
   var setServicePASS1=DataList.getRange(i,3).getValue();
   //●●DBサービスID・PASS取得
   var setServiceID2=DataList.getRange(i,4).getValue();
   var setServicePASS2=DataList.getRange(i,5).getValue();
   //●●グループウェアID・PASS取得
   var setServiceID3=DataList.getRange(i,6).getValue();
   var setServicePASS3=DataList.getRange(i,7).getValue();
   //宛先取得
   var setAddress=DataList.getRange(i,8).getValue();
   
   //ドキュメントに記載されている{xx}をスプレッドシートに記載されているデータに置換処理する。
   setBody =getDocTmp.replace(/{名前}/,setName).
                      replace(/{xxクラウドID}/,setServiceID1).
                      replace(/{xxクラウドPASS}/,setServicePASS1).
                      replace(/{xxDBサービスID}/,setServiceID2).
                      replace(/{xxDBサービスPASS}/,setServicePASS2).
                      replace(/{●●グループウェアID}/,setServiceID3).
                      replace(/{●●グループウェアPASS}/,setServicePASS3);

   
   
   // メール送信処理
   GmailApp.sendEmail(
     setAddress, //toアドレスを設定
     setSubject,  //表題を設定
     setBody, //本文を設定
     {
       from: setFrom, //fromを設定
       name: setSender //差出人を設定
     }
   );
 }
}

コードを実行する

GASで書いたコードを実行します。

実行する際は画像の様に画面上部あたりに▶ボタンあるのでそちらをクリック

 

  クリックすると承認が必要でスという画面が出てくるので許可を確認をクリック。

  その後にGoogleアカウントの確認画面が表示され、各自のアカウントを選択

選択後に画面が変わり、このアプリが確認されていません。

と表示されたら、左下にある詳細をクリックして [コードプロジェクト名](安全でないページ)に移動をクリック。   ポップアップが出てくるので『次へ』を入力   さらに別のポップアップが出てきます。こちらはこのコードの実行許可をするかどうかの画面です。問題ない場合は『許可』をクリック   再度、コードの画面に戻って▶をクリック するとコードが実行されます。  

実行後の画面

実行後、Gmailの送信済みフォルダに送信履歴が残っていますので そちらを見るとスプレッドシートに書かれている内容で送信されていることが 分かります。  



作ってみての感想

  Googleのサービスを連携させて様々な事が出来ると言う事が分かりました。

便利ですよね、これで20人規模の新人が入ってきても安心です。

今回はアカウント一覧として効率化させる為に作りましたが、 他にも色々な使い方が出来るかと思います。   是非、ご自分の業務にあった形で修正してみてはいかがでしょうか。

ではまた次回もご贔屓に。

スポンサーリンク

Twitterでフォローしよう

オススメ記事!
おすすめの記事