GASでGmailの新着メールを定期的にslackに通知する

GAS

 

GASを使う仕事の依頼が来たので、その仕様の連絡が来るまで勉強として、タイトル通りのプログラムを作ってみました。大半はコピペでちょこちょこっとした修正。なんじゃこれ、こんなに簡単に作れる物なの? 私、JsもGASもド素人なんですけど。

フローとしては、

  1. slackのグループに「メールが来ました」と書き込む。
  2. Gmailを検索し、スレッドごとの新着メールを抜き出す。
  3. slackのグループにタイトルを書き込む。

いじょ。

Gmailに付いての書き方はこちらを参照
https://stress-hack.fun/gas%E3%81%A7gmail%E3%81%AE%E6%96%B0%E7%9D%80%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/

slackへの通知方法はこちら参照
https://qiita.com/TakayukiNJ/items/097086f378873fca0510

 

function getNewMail() {
// 未読のスレッドを検索対象にする
 var searchCondition = 'is:unread';
 var threads = GmailApp.search(searchCondition, 0, 50);
 var url = ”slackのグループのweb hock url”;
 var options;
  options = {
   "method" : "POST",
   "headers": {"Content-type": "application/json"},
   "payload" : '{"text":"' + "★★★以下の新着メールが来てます\n" +   '"}'
  };
  UrlFetchApp.fetch(url, options);
  for (var i = 0 ; i < threads.length; i++) {
   var msgs = GmailApp.getMessagesForThread(threads[i]);
   for (var j = 0; j < msgs.length; j++) {
    options = {
     "method" : "POST",
     "headers": {"Content-type": "application/json"},
     "payload" : '{"text":"' + msgs[j].getSubject() + '"}'
    };
    UrlFetchApp.fetch(url, options);
   }
  }
 }

あとは、タイマートリガーをセットするだけ。
簡単ですね。あ、変数名とかはリンク先の奴そのまんまなので迷うことはないはずです。

コメント

タイトルとURLをコピーしました