メール受信時に Outlook トリガーが起動しないという症状
Logic Apps には次のような Outlook トリガーがあります。
- 新しいメールが届いたとき
- 新しいメールが共有メールボックスに届いたとき
しかしながら、指定した条件を満たすメールを受信した場合においても、Logic Apps 側のトリガーが発動しないというケースが時折生じます。
Outlook トリガーが起動しない原因について
Outlook コネクタの公式ドキュメントには、トリガー側における既知の問題と制限として下記のような内容の記載があり、本件は基盤側の問題であるようです。
システムの制限によりメールが失われる
同時に送信されるメールが多数ある場合、基盤となっているシステムの制限のため、トリガーが一部のメールを見落とす可能性があります。 この問題はめったに発生しません。メール トリガーに関連しています。
Microsoft 側としては想定された動作であるようですが、利用者側としては、システムを自動化する以上ごく稀でも取りこぼしがあったら困りますよね。
ですので、ちょっとした回避策について考えてみます。
受信されない問題についての回避策
これについては、Logic Apps の “Recurrence” トリガーと、Outlook 側の “複数のメールの取得 (V3)” アクションを組み合わせることで回避策になるのではないかと思ってます。
Azure Logic Apps で繰り返し実行されるワークフローのスケジュールに関する概要。…
筆者自身まだ試してはいないのですが、例えば “Recurrence” トリガーを 2 時間置きの間隔で起動するとして、後は “複数のメールの取得 (V3)” アクションで下記プロパティを指定するとかですかね。
未読のメッセージを取り込むという内容
未読のメッセージのみを取り込んで、その内容を参考に “For each” アクションで必要な処理をまわすということも考えられます。
Azure Logic Apps を使用してワークフローでアクションを繰り返すためのループを作成します。…
「ただちょっとなぁ……」って部分がありまして、メッセージ ボックスについては勿論人も確認するはずなので、人が確認した時に既読されちゃうと当該メールで抜け漏れが発生します。
検索クエリを用いるというもの
“Recurrence” トリガーが 2 時間ごとに起動するのであれば、本アクションについては過去 2 時間以内に受信したメールを取得するという条件を付ければ良いのでは?と思ってます。
それだけでメール受信時の抜け漏れが防げます。
また、クエリについては “Recurrence” トリガーの内容もふまえちょっとした注意点もあったりします。
例えば、数日や数週間ごとにデータを取得して処理するようなワークフローにしてしまうと、それこそ日に何十件もメールを沢山受信するような会社さんの場合は処理に凄く時間が必要になります。
当サイトでもトラブルシューティングとして執筆しておりますが、そのような大量の処理をする場合は、スループット制限である 429 エラーが発生する可能性もあります。
429 エラー (スループット制限) とはなにか 従量課金制 Logic Apps ではスループット (時間あたりの処理量) が制限されています。 Azure Logic Apps の制約と構成の参考文献 # ス[…]
こちらについては公式ドキュメントでも注意喚起されているので、”Recurrence” トリガーを使用する際、クエリを指定する際は間隔に気を付けて下さい。
通常は、$select を使用して、クエリから返されるプロパティをお使いのアプリで必要なものだけに制限することをお勧めします。 これは特に、クエリが大きな結果セットを返す可能性がある場合に該当します。 行ごとに返されるプロパティを制限すれば、ネットワークの負荷を軽減し、アプリのパフォーマンスを向上させることができます。
最後に、ご参考になりそうな情報を添えて本記事を締めたいと思います。
Microsoft Graph は、$search OData クエリ パラメーターをサポートして、要求の結果を検索条件…