LoginSignup
17
7

More than 1 year has passed since last update.

[GAS]特定メールアドレスからメール受信した際に、slack通知を行う

Last updated at Posted at 2023-03-12

この記事でわかること

今回の記事は、GASを用いて採用関係のメール受信時に、Slackに通知するアプリを作成するためのものです。
1つの記事で機能を全てまとめてみました。詳しくは以下の項目をご覧ください。

  • GASでのGMail、slack連携
  • SlackAPIの基本設定
  • GASでのトリガー設定
  • 機能実装方法

SlackAPIの設定

1. SlackAPIのリンクにアクセスし、新しいSlackアプリを作成する。スクリーンショット 2023-03-12 10.48.39.png

2. スコープ&パーミッション設定を行う。スクリーンショット 2023-03-12 11.00.11.png

3. Slackボットを追加し、ワークスペースにインストールする。

以下の記事を参照していただくと、ここまでの手順が詳細に書いてあります。

GASの設定

GASの新規プロジェクトを立ち上げ、
SlackAppのスクリプトID(1on93YOYfSmV92R5q59NpKmsyWIQD8qnoLYk-gkQBI92C58SPyA2x1-bq)を入力し、ライブラリをインストールする。(SlackAPIと連携ができるようになります。)スクリーンショット 2023-03-12 11.07.58.png

GASでの機能実装

SlackAPIクライアントを作成

const token = "{SlackAPIで登録したボットのトークン}";
//SlackAPIクライアントを作成
const slackApp = SlackApp.create(token);
//メッセージ投稿チャンネルを指定
const channelId = "{チャンネルID}";

Gmailで特定メール受信時、slackに通知する

// Gmailで特定メール受信時、slackに通知する
function notifyToSlack() {
    // トリガーの実行間隔(日、時間、分のいずれかの単位)
    const interval = 1;
    // 自動返信するメールのキーワードを指定する。この文字列が件名に含まれるものが対象となる。
    const address = '{特定のメールアドレス}';
    // メール検索期間の終わり
    const endMinute = Math.round(new Date().getTime() / 1000);
    // メール検索期間の始め
    const startMinute = endMinute - (interval * 60);
    // メールの検索クエリ
    const query = 'after:' + term_start + ' before:' + term_end + ' from:"' + address + '"';
    // 通知メッセージ
    const text =  "<!channel>\n学生からメッセージが来ています!!"
    // 条件を元にメールを検索する
    const threads = GmailApp.search(query);

    if (threads.length) {
    // 通知
    slackApp.postMessage(channelId, text);
    }
}

トリガーの設定

スクリーンショット 2023-03-12 11.43.12.png

これで、特定のメールアドレスからメールを受信した際に、Slackに通知してくれるアプリが完成しました。

同じような業務効率化アプリを作成したい人のお役に立てれば幸いです!!最後までご覧いただきありがとうございました!

17
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
7