大量にメールを受信している環境で、「なんかメールいっぱい受信しているけど、本当に重要なメールはごく一部だけなんだよな」ということが、良くあるかと思います。
インフラの運用をやっていると、大量に来る監視メールの中に埋もれている 1 通の障害通知メールを見落とさないかとヒヤヒヤすることが良くあります。かと言って、全てのメールに気を張り続けているのも大変です。日中は通常勤務しながら深夜や休日も待機勤務状態にある人は 24 時間気が休まりません。
Microsoft Flow を使うことで、特定の条件に合致したメールのみ、別のメールアドレスに転送するよう振り分けることができますので、使ってみたいと思います。
現在の環境
- メーリングリストから、大量にメールが配信される
- メーリングリストから配信されるメールには監視通知や障害通知が混在している
- 障害通知は緊急対応が必要なため、見落とすわけにはいかない
- 監視通知は件名で分別可能だが、障害通知は件名がバラバラ
やりたいこと
- メーリングリストから配信される障害通知のみを別のメールアドレスに転送したい
準備するもの
- Gmail アカウント x 1
- Microsoft アカウント x 1
- SMTP サーバー接続情報
大まかな流れ
以下のようにすることで目的を達成できます。
- メーリングリストに Gmail アカウントでメンバー参加させる
- Gmail のフィルタ ルールを設定し、障害通知とそれ以外をラベルで分別する
- Microsoft Flow で Gmail アカウントに接続し、障害通知ラベルの付いたメールだけを別のメールアドレスに転送するよう設定する
設定方法
Gmail でのフィルタ ルール作成
- Gmail をWeb ブラウザーで開き、設定 を開く。
- メール転送と POP/IMAP タブを開き、転送を無効にする を選択する。
- フィルタとブロック中のアドレス タブを開き、新しいフィルタを作成 を選択する。
- メール転送不要な監視メールの条件を指定して、この検索条件でフィルタを作成 を選択する。(今回の場合、転送不要なメールは件名で判別できるので、件名のみ指定)
- ラベルを付ける にチェックを付け、転送不要なメールに付けるラベル名を指定する。(ここでは、NotOperate とする) その他のオプションは必要に応じて指定する。フィルタを作成 を実行して、設定内容を確定する。
- 必要に応じて、転送不要なメールのルールをくりかえし追加する。
- 今回、転送が必要なメールの件名は不定であるため、「転送不要なメールの条件に合致しないものすべて」 = 「NotOperate ラベルが付いていないメール」とすることで実現する。
- 新しいフィルタを作成し、検索条件として、含まない 欄に label:NotOperate と指定する。(label:<ラベル名> とすることで、特定ラベルが付いたメールを指定できる)
- 確認画面が出るため、OK で進める。
- ラベルを付ける にチェックを付け、転送するメールに付けるラベル名を指定する。(ここでは、Operate とする) その他のオプションは必要に応じて指定する。迷惑メールにしない を指定しておくと、「Gmail で迷惑メール扱いされて転送対象にならなかった」というような問題を避けられるため、より良い模様。フィルタを作成 を実行して、設定内容を確定する。
- 作成されたフィルタ内容を確認する。上から順に判定されるため、転送用のフィルタが一番下になるように注意する。
- Gmail のフィルタ設定は、以上で完了。
Microsoft Flow でのフロー作成
- Microsoft Flow を開き、Microsoft アカウントでサインインする。
- マイ フロー を選択する。
- フローを一から作成する を選択する。
- フロー作成画面に移動後、まず フロー名 を入力する。(ここでは 障害通知メールの転送 とする)
- 検索ボックスに Gmail と入力し、Gmail – 新しい電子メールが届いたとき トリガーを選択する。
- サインイン を選択する。
- ウインドウが開くため、Gmail のアカウント名とパスワードを入力して進める。
- 許可 を実行する。
- ラベル に、転送対象として Gmail でフィルタ ルールを作成したラベル名を指定する。(ここでは Operate を指定)
- 画面下にある 新しいステップ から アクションの追加 を実行する。
- 検索ボックスに SMTP と入力し、SMTP – 電子メールの送信 (V2) アクションを選択する。
- SMTP サーバーやアカウントの情報を入力して、作成 を実行する。
- 差出人、件名、本文 は元のメールをそのまま活用するように動的コンテンツを指定し、宛先 には転送先のメールアドレスを指定する。
- フローの保存 を実行する。
- 画面上の 完了 を実行する。
- 以上でフローの作成は完了。
試してみてできなかったこと
- Microsoft Flow を使わずとも、Gmail のフィルタ ルールで転送先を指定できるのでは?
- 転送されなかった。原因不明。(label: とかを指定すると転送されない?)
- Microsoft Flow じゃなくても IFTTT でもできる?
- できなかった。Gmail を利用したアプレットが Fail する。(不具合の模様)
- アクションは SMTP じゃなくて メール でも良いのでは?
- Out of call volume quota. でエラーになる。