Google Apps Scripts × Slack × Gmail メッセージの自動送信

Google Apps Scripts × Slack × Gmail メッセージの自動送信:


moment.jsが便利なので、入れます。

リソース→ライブラリ

ライブラリを追加:MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48

バージョンは、9を選択して、保存。


スクリーンショット 2019-01-29 11.06.58.png



今日やる内容(自分のGASにコピペしてください。)

mail.js
var DEBUG_FLG = 0; // 0のときメール送信 
 
function sendEmail(){ 
  var tomail    = ""; 
  var mailTitle = ""; 
  var mailMsg   = ""; 
  var opt       = new Object(); 
 
  opt.cc   = ""; 
  opt.bcc  = ""; 
  // opt.from = "g181tg2061@dhw.ac.jp"; 
  opt.name = "【メルマガ】"; // 差出人 
 
  // スプレットシートからデータを引き出す 
  // 1. 今開いている(紐付いている)スプレッドシートを定義 
  var magaginSheet  = SpreadsheetApp.getActiveSpreadsheet(); 
  // 2. mail_listの名前が書かれているシートを呼び出す 
  var maillistSheet = magaginSheet.getSheetByName("mail_list"); 
  // 3. 最終列の列番号を取得 
  var numColumn     = maillistSheet.getLastColumn(); 
  // 4. 最終行の行番号を取得 
  var numRow        = maillistSheet.getLastRow()-2; 
  Logger.log(numRow); // コントロール(macはコマンド) + R して、上のバーの表示→ログが見れる。 
  // 5. 範囲を指定(上、左、右、下) 
  var dataRange     = maillistSheet.getRange(3, 1, numRow, numColumn); 
  // 6. 値を取得 
  var data          = dataRange.getValues(); 
 
  for(i in data){ 
    var rowData    = data[i]; 
    var organization = data[i][0];  // 法人名 
    var mainAddress  = data[i][1];  // 事務所(主) 
    var subAddress   = data[i][2];  // 事務所(従) 
    var ceoName      = rowData[3];  // 代表者氏名 
    var contactDay   = Moment.moment(rowData[4]).format('YYYY/MM/DD'); // コンタクト日 
    var sendMailDay  = Moment.moment(rowData[5]).format('YYYY/MM/DD'); // 次回メール送信日 
    var field        = rowData[6];  // 活動分野、メモ 
    var callMeMaybe  = rowData[7];  // 電話番号 
    var emailAddress = rowData[8];  // メールアドレス 
    var partnerName  = rowData[9];  // 担当者氏名 
    var contactForm  = rowData[10]; // 連絡フォーム 
    var sentTimes    = rowData[11]; // 送信回数 
    var sentProval   = rowData[12]; // 自動送信許可 
    var sentTime     = Moment.moment().format('YYYY/MM/DD'); // 送信時間 
    var trackingID   = rowData[14]; // トラッキングID 
 
    var format = "いつもありがとうございます!<br>今後とも何卒よろしくお願いいたします。"; 
 
    mailTitle    = "【新年のご挨拶】こんばんは"; // メールの件名 
    mailMsg      = "<b>今年はプログラミングをはじめました。</b>"; // メールの本文 
    opt.htmlBody = mailMsg; // optに本文を格納 
    if(0 == DEBUG_FLG && "許可" == sentProval && sendMailDay == sentTime){ 
      // メールを送信 
      // 参考URL: https://developers.google.com/apps-script/reference/gmail/gmail-app#sendEmail(String,String,String,Object) 
      MailApp.sendEmail("nj.takayuki@gmail.com", mailTitle, "", opt); // (宛先, 件名, 本文, オプション) 
 
      // slackにメッセージ送信 
      var slack_url = "https://hooks.slack.com/services/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"; 
      //var slack_url = "https://hooks.slack.com/services/**********************************************"; // ******の部分に自分のKEYを入力 
      var slack_opt = { 
        "method" : "POST", 
        "headers": {"Content-type": "application/json"}, 
        "payload" : '{"text":"'  
        + "自動メールを"+partnerName+"送りました。" 
        + '"}' 
      }; 
      UrlFetchApp.fetch(slack_url, slack_opt); 
 
      // 送信回数と送信時間の更新 
      rowData[11] = sentTimes + 1; 
      rowData[13] = sentTime; 
    } else { 
      Logger.log(emailAddress); 
      Logger.log(mailTitle); 
      Logger.log(opt); 
    } 
  } 
  // スプレッドシートのデータを更新(送信回数と送信時間) 
  dataRange.setValues(data); 
} 
 


スプレッドシートの中身

スクリーンショット 2019-01-29 13.35.24.png


トリガー設定



スクリーンショット 2019-01-29 12.07.02.png

スクリーンショット 2019-01-29 11.45.24.png



イベントのソースを選択:時間主導型


時間ベースのトリガーのタイプを選択:日付ベースのタイマー


時刻を選択:好きな時間を選択



スクリーンショット 2019-01-29 11.47.24.png


以上です。来週(2/5)もデジハリ4Fで会いましょう!

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)