昨日までの内容で動作するようになったら、あとは定義を増やしていくことと、自動的に実行することで目的を達成できます。
設定ファイルは、以下の内容をJSON形式で構成します。
“username” : Slackに投稿するときの名前
“channel” : Slackの投稿先チャンネル
“title” : メールのタイトルに、ここで示す文字列が含まれていれば対象とする
“fromText” : メールの本文のそれぞれの行で、ここで示す文字列が含まれる行が見つかれば、それより後の内容を転送する
“toText” : メールの本文のそれぞれの行で、ここで示す文字列が含まれる行が見つかれば、それより苗の内容を転送する
“fromText”は空文字列にすることもできます。この場合には、メール本文の先頭から転送対象にします。”toText”は空文字列にはしないでください。メール本文の最後まで転送対象にしたい場合には、メール本文に含まれることがない文字列を指定してください。
私が作成した、具体的な例は次の通りです。楽天証券や楽天カードを利用しているのがバレてしまいますが…
[ { "username" : "Rakuten", "channel" : "stock", "title" : "国内株式の注文が約定しました", "fromText" : "国内株式の注文が約定しました。", "toText" : "約定は一部約定の場合があります。" }, { "username" : "Rakuten(配当金)", "channel" : "stock", "title" : "配当金の入金予定をお知らせします", "fromText" : "■配当情報", "toText" : "▼配当・分配金" }, { "username" : "Amazon", "channel" : "notification", "title" : "本日到着予定:", "fromText" : "", "toText" : "配送状況:" }, { "username" : "佐川", "channel" : "notification", "title" : "佐川配達予定案内", "fromText" : "", "toText" : "★配達日・時間帯指定の変更はコチラから" }, { "username" : "楽天", "channel" : "notification", "title" : "[楽天]ログインしましたか?", "fromText" : "", "toText" : "上記のログイン記録に" }, { "username" : "JAL", "channel" : "notification", "title" : "座席変更のお知らせ", "fromText" : "", "toText" : "ご搭乗クラス、ご予約便に" }, { "username" : "楽天カード", "channel" : "money", "title" : "【速報版】カード利用のお知らせ", "fromText" : "速報情報", "toText" : "メールの概要についてさらに詳しく" }, { "username" : "楽天カード", "channel" : "money", "title" : "カード利用のお知らせ(", "fromText" : "リボ払い変更可能なご利用分", "toText" : "ご利用分のお支払い方法の変更が" }, { "username" : "ヨドバシ", "channel" : "notification", "title" : "ヨドバシ・ドット・コム:ご注文商品出荷のお知らせ", "fromText" : "(表示の価格は、すべて消費税総額表示です)", "toText" : "・今回の還元ゴールドポイント数" } ]
あとは、これを定期的に実行するのは簡単です。G Suite Developer Hubを開き、左側のメニューから「マイトリガー」をクリックします。トリガーが何もない場合には、ここからトリガーを追加できます。既にトリガーの定義がある場合には、JavaScriptのエディタ画面のメニューで、「編集」→「現在のプロジェクトのトリガー」を実行後、右下の「トリガーを追加」で追加できます。
あとは、下の画像のように、関数gmailToSlackを1分ごとに実行すればOKです。メールが来る頻度によっては、「5分おき」などでも良いと思います。
これで、必要な情報のみがSlackに転送され、Slackの投稿を検知したスマートフォンの通知がMi band 3に転送される、という流れを構築できました。