技術のメモ帳

気が向いたときに書いてます

[GAS]Gmailの受信時に特定の処理を実行するライブラリ

Gmailのメール受信時に特定処理を実行するライブラリ GmailObserverを書きました。

実際は、受信時のトリガーは存在しないため、Apps Scriptのトリガーに[1分おきに実行]と登録し、メール受信をトリガーにした処理を行います。

条件にマッチしたメールのIDを保存しているため、重複処理も行われません。

ライブラリの使い方

  1. Apps Scriptの空のプロジェクトを作成
  2. [リソース]→[ライブラリ]からMwKHVbKHmqQo9M76CziUrrsLo7O4tWOsVを検索して追加
  3. 定期実行する関数を実装
function run() {
  var condition = 'label:inbox is:unread',
      onSuccess = function (matches) {
        // do something...
        for(var i in matches) {
          var mail = matches[i];
          Logger.log(mail.getFrom());
        }
      },
      onFailure = function (message) {
        Logger.log(message);
      };
  GmailObserver.observe(condition, onSuccess, onFailure);
}

関数を実装したら、プロジェクトのトリガーに登録します。

基本メソッドの仕様

GmailObserver.observe()メソッドの仕様は、以下の通りです。

引数 内容 必須/任意
condition メールの検索条件 必須
onSuccess 抽出成功時のコールバック(引数はGmailMessageクラスの配列) 任意
onFailure 例外発生時のコールバック(引数は発生した例外のメッセージ) 任意

どんなスクリプトが実装できるのか

受信したメールをトリガーに、以下のアクションが実装できます(例)

  • Slackで通知を投げる
  • Spreadsheetに保存
  • 添付ファイルを展開して、別のドライブに保存

IFTTTと組み合わせても面白いことができるかもしれませんね。

GmailObserverのコード

ライブラリのコードは、次のようになりました。

参考リンク