見出し画像

GASで作ったメルマガツールを改良したはなし

以前作った↓noteを改良しました。
GASでメルマガツールを作ったはなし

◎変更点

個別ファイルを添付できるようにしました!
ファイル、メール本文も個別に変更可能なのでかなり自由度の高いメールが作成できます!

変わった点詳細
・添付ファイルを特定のフォルダから取得
・個別のメールアドレスに個別ファイルを添付可能
・図形ボタンを作成しスクリプトを実行

このGASで使えそうなお仕事

・請求書発行
・セグメントされた営業メール

①用意するもの

・テキスト本文
 ・Googleドキュメントで作成
・宛先リスト
 ・G列に添付ファイル名を
 ・今回はスプレッドシートに図形でボタンを作成しGAS

スクリーンショット 2020-07-25 23.36.05

・図形にスクリプトを割り当ては簡単にできます!

スクリーンショット 2020-07-26 17.22.05

・送信用データを格納するフォルダ
 ・送付するデータを格納しておく

スクリーンショット 2020-07-26 17.01.23


②メール送付スクリプト

・メール本文のドキュメントIDを指定
 ・https://docs.google.com/document/d/"ここがドキュメントIDです"/edit
・ここにドキュメントIDを入れる
 ・var docTest=DocumentApp.openById("XXXXXXXX"); //ドキュメントをIDで取得

function sendMail(){

 /* スプレッドシートのシートを取得と準備 */
 var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得
 var rowSheet=mySheet.getDataRange().getLastRow(); //シートの使用範囲のうち最終行を取得
 
 /* ドキュメント「メール本文テスト」を取得する */
 var docTest=DocumentApp.openById("XXXXXXXX"); //ドキュメントをIDで取得
 var strDoc=docTest.getBody().getText(); //ドキュメントの内容を取得
 
 /* メール表題、fromアドレス、差出人名を準備 */
 var strFrom="XXXXXXXX@gmail.com"; //Fromアドレス
 var strSender="もりもとだよー"; //差出人
 
 /* Google Driveからファイル名で、ファイルを取得する */
 var folder_name = Browser.inputBox('フォルダ指定');
 var folder_id=folder_name.replace('https://drive.google.com/drive/folders/','');//発注書格納フォルダIDを入力
   folder = DriveApp.getFolderById(folder_id);
 
 /* シートの全ての行について社名、姓名を差し込みログに表示*/
 for(var i=2;i<=rowSheet;i++){
   
   var strCompany=mySheet.getRange(i,1).getValue(); //社名
   var strSecond=mySheet.getRange(i,2).getValue(); //姓
   var strTo=mySheet.getRange(i,3).getValue(); //toアドレス
   var strcc =mySheet.getRange(i,4).getValue(); //ccアドレス、カンマ区切りで複数選択可能
   var strSecond2=mySheet.getRange(i,5).getValue(); //差込データ
   var strSubject=mySheet.getRange(i,6).getValue(); //件名
   var strfile=mySheet.getRange(i,7).getValue(); //添付ファイル名
   var strreport = folder.getFilesByName(strfile).next();
   var strBody=strDoc.replace(/{社名}/,strCompany).replace(/{姓}/,strSecond).replace(/{差込データ}/,strSecond2); //社名、姓名を置換
    
   /* メールを送信 */
   GmailApp.sendEmail(
     strTo, //toアドレス
     strSubject,  //表題
     strBody, //本文
     {
       from: strFrom, //fromアドレス
       name: strSender, //差出人
       attachments: [strreport],
       cc: strcc
     }
   ); 
   
 }
}


③ファイル名取得のスクリプト

 ・↓これをそのまま利用しました!
 ・フォルダ内のファイル名、URLを取得するSpreadSheet

④GASを実行する

無料アカウントだとエラーがでます
この手順で実行してください!

・ファイルIDを指定の画面がでます

スクリーンショット 2020-07-26 17.30.19

・GoogleDriveのリンクの指定箇所を入力
 ・https://drive.google.com/drive/folders/XXXXXX

スクリーンショット 2020-07-26 17.30.57

⑤個別ファイル付メールが送付される

・個別ファイル付でメールが送付されました!

スクリーンショット 2020-07-26 17.35.01

スクリーンショット 2020-07-26 17.35.44

参考記事

図形でボタンを作成しGASを実行
フォルダ内のファイル名、URLを取得するSpreadSheet


この記事が気に入ったらサポートをしてみませんか?