特定ラベルの Gmail を受信したら、指定時間に Slack へ通知

わが家は UQ WiMAX を使っている。UQ WiMAX は過去3日間で 10GB を超える利用データ量を超えると、その翌日は 18:00 ~ 2:00 の間、速度制限が掛かる。これが結構引っ掛かって、しょっちゅう速度制限になっている。

WiMAX2+サービス ネットワーク混雑回避のための速度制限について|【公式】UQ WiMAX|UQコミュニケーションズ
https://www.uqwimax.jp/wimax/plan/note/gigahodai_speedlimit_10/

速度制限が掛かる日の午後3時過ぎにはその旨を知らせるメールが届く。でも、メールよりも Slack に通知されるほうが便利だ。家庭内 Slack をやっているので、速度制限情報を家族に知らせることもできるからだ。

これまでは速度制限を知らせるメールが来たら Slack へ通知する手段として、Zapier を使ってきた。Zapier はさまざまなことを自動化できるサービスだ。IFTTT のようなものだが、もっと細かいことができたりする。

Zapier | The easiest way to automate your work
https://zapier.com/

Zapier はトリガーを感知すると実行するアクションを、時間指定することができる。どういうことかというと、速度制限を知らせるメールは午後3時過ぎに来るけど、Slack への通知は速度制限が始まる直前に来たほうが都合がいい。その Slack への通知時間を指定できるのだ。

そのために Zapier にはフィルターという機能があり、トリガーからその後のアクションの間に時間指定のフィルターを挟むことで、アクションの時間を指定できるわけだ。

ただ、フィルター機能を使うには Zapier の有料版を使わねばならない。確かに Zapier は便利で、このために月 20 ドルを払っていた。でも、節約を兼ねて Zapier の有料版は解約することにした。

その代替手段を考えた。Google Apps Script を使うのだ。具体的には以下のページに従えば、Gmail の指定ラベルを付けたメールがヒットすると、Slack へ通知するスクリプトを作れる。

Gmailをスクレイピングして重要なメールをSlackで通知させる【便利ツール】 | I am at…
https://ynwa0826.com/2019/02/13/20190206/

このページのコードをちょっといじれば、アイコンを変更するのも簡単だった。

夕方6時直前に Slack へ通知されるには Google Apps Script の実行スケジュールを 17:00 ~ 18:00 にすればいい。

17:00 ~ 18:00 ではなく、もっと細かい分を指定するには以下のページに従えばいい。

Google Apps Scriptの日毎のトリガーで時間をもっと細かく設定する – Qiita
https://qiita.com/sumi-engraphia/items/465dd027e17f44da4d6a