IT Hands-on Lab

小規模組織向けIT環境の構築・運用に役立つ情報を、ハンズオン形式で紹介しています。

【Power Automate】添付ファイル付きOutlookメール Teamsチャネル投稿2

PowerAutomate 添付ファイル付きOutlookメールをTeamsチャネルに投稿する2

前の記事の続きになります。
Microsoft社が提供するローコード開発ツール「Power Platform」のフロー機能(Power Automate)を使用した、Outlookで受信した添付ファイル付きメールをTeamsのチームチャネルに投稿し、チーム内で共有する設定例を紹介します。
取引先からメール送付された請求書、外部からの問合せ受付メールの管理、会員メールの他メンバーへの共有等、様々な用途で活用できます。
  • 操作環境:
    • OS:Windows 11
    • Webブラウザー:Edge
  • 使用プラン:Microsoft 365 Business Premium(試用版)

 

 

Power Automateによるフロー実装

分岐内処理:true(添付ファイルあり)

ここからtrueの分岐内処理を設定していきます。


まず、メールの添付ファイルをSharePointに格納するアクションを追加します。
検索欄に[share]と入力し、ランタイムで[標準]を選択し、[SharePoint]が見つかったら、[さらに表示]を選択します。
[ファイルの作成]を選択します。

図表5-1 各ステップの設定(SharePointファイル作成の追加)

図表5-1 各ステップの設定(SharePointファイル作成の追加)

 

[パラメーター]タブの項目を以下の通り設定します。

  • サイトのアドレス:payments(前の記事の工程3で作成したTeamsのチーム)
  • フォルダーのパス:/Shared Documents/General/[Converted time](項目)_[replaced-subject](項目)
  • ファイル名(項目):添付ファイル 名前
  • ファイルコンテンツ(項目):添付ファイル コンテンツ

図表5-2 各ステップの設定(SharePointファイル作成の設定)

図表5-2 各ステップの設定(SharePointファイル作成の設定)

 

なお、メールに複数のファイルが添付されている場合がありますが、図表5-2のSharePointのファイル格納ステップを追加した時点で、自動的に繰り返し処理も追加されるようになっています。

図表5-3 各ステップの設定(SharePointの複数ファイル考慮)

図表5-3 各ステップの設定(SharePointの複数ファイル考慮)

 

前の記事のfalseの処理と同様、Teams投稿にあたり、投稿内容を格納する一時領域を追加します(前の記事の実装上の注意点の項番5による)(画面割愛)。

  • ランタイム:組み込み
  • アクション:Data Operation>作成

[パラメーター]タブの項目を画面イメージの通り設定します。falseと処理との違いは添付ファイル格納先のリンクがあることです。

*添付ファイル格納先のパス:
https://xxxxxx.sharepoint.com/sites/payments/Shared Documents/General/[タイムゾーンの変換](項目)_[replaced-subject](項目)

また、本文は前の記事の実装上の注意点の項番3の通り、改行コードの置き換えを行います。

  • 本文(関数): uriComponentToString(replace(uriComponent(triggerBody()?['Body']), '%0D%0A', '<br>'))

図表5-4 各ステップの設定(Teams投稿内容作成-true)

図表5-4 各ステップの設定(Teams投稿内容作成-true)

 

前の記事のfalseの処理と同様、 Teamsチャネルの投稿用アクションを追加します(画面割愛)。

  • ランタイム:標準
  • アクション:Microfost Teams >チャットまたはチャネルでメッセージを投稿する

[パラメーター]タブの項目を以下の通り設定します。

  • 投稿者:ユーザー
  • 投稿先:Channel
  • Team:payments
  • Channel:General
  • Message(項目):前のステップで作成した一時領域
  • Subject(項目):件名

図表5-5 各ステップの設定(Teams投稿)-true

図表5-5 各ステップの設定(Teams投稿-true)

 

前の記事の実装上の注意点の項番4の通り、投稿サイズ上限を考慮した失敗時の処理を追加します(画面割愛)。

  • ランタイム:組み込み
  • アクション:Control>スコープ

[設定]タブを選択し、前のステップ名(この例では[チャットまたはチャネルでメッセージを投稿する-true])を展開し、[失敗しました]のみチェックをつけます。
これにより、スコープ内に追加したアクションは、前のステップが失敗したときのみ実行されるようになります。

図表5-6 各ステップの設定(スコープ-true-失敗時)

図表5-6 各ステップの設定(スコープ-true-失敗時)

 

分岐内処理:true:失敗時(添付ファイルあり・投稿失敗)

図表5-4と同じ要領で、Teams投稿内容を格納する一時領域を追加します(画面割愛)。

  • ランタイム:組み込み
  • アクション:Data Operation>作成

[パラメーター]タブの項目を画面イメージの通り設定します。本文に関しては、今回は本文のプレビューを選択します。

図表5-7 各ステップの設定(Teams投稿内容作成-true-失敗時)

図表5-7 各ステップの設定(Teams投稿内容作成-true-失敗時)

 

図表5-5と同じ要領で、Teamsチャネルの投稿用アクションを追加します(画面割愛)。

  • ランタイム:標準
  • アクション:Microsoft Teams >チャットまたはチャネルでメッセージを投稿する

[パラメーター]タブの項目を以下の通り設定します。

  • 投稿者:ユーザー
  • 投稿先:Channel
  • Team:payments
  • Channel:General
  • Message(項目):前のステップで作成した一時領域
  • Subject(項目):件名

図表5-8 各ステップの設定(Teams投稿-true失敗時)

図表5-8 各ステップの設定(Teams投稿-true-失敗時)

 

trueの分岐内処理が完成し、フロー作成が一通り完了しました。

図表5-9 PowerAutomateフローの概観

図表5-9 PowerAutomateフローの概観

 

右上の[保存]を選択し、フローを保存します。
エラーメッセージが表示される場合は、エラー内容を確認して修正してから保存します。

図表5-10 PowerAutomateフロー保存

図表5-10 PowerAutomateフロー保存

 

動作確認

外部のメールアドレスから、paymentsメール宛に添付ファイルあり(単数/複数)/なしのメールを送ってみます。

図表6-1 動作確認(テストメール送信)

図表6-1 動作確認(テストメール送信)

 

まずは添付あり(単数)メールの受信状況を確認します。
Teamsの投稿内容は問題なさそうです。添付ファイル格納先のリンクを選択します。

図表6-2 動作確認(添付あり(単数)の受信メール)

図表6-2 動作確認(添付あり(単数)の受信メール)

 

Webブラウザーが起動し、SharePointの格納先フォルダーにアクセスできました。受信メールの添付ファイルも格納されており、このファイルも開けました。

図表6-3 動作確認(添付あり(単数)のリンク先)

図表6-3 動作確認(添付あり(単数)のリンク先)

 

次は添付あり(複数)メールの受信状況を確認します。
Teamsの投稿内容は問題なさそうです。添付ファイル格納先のリンクを選択します。

図表6-4 動作確認(添付あり(複数)の受信メール)

図表6-4 動作確認(添付あり(複数)の受信メール)

 

Webブラウザーが起動し、SharePointの格納先フォルダーにアクセスできました。受信メールの添付ファイルもすべて格納されており、これらのファイルも開けました。

図表6-5 動作確認(添付あり(複数)のリンク先)

図表6-5 動作確認(添付あり(複数)のリンク先)

 

最後は添付なしメールの受信状況を確認します。
Teamsの投稿内容は問題なさそうです。

図表6-6 動作確認(添付なしの受信メール)

図表6-6 動作確認(添付なしの受信メール)

 

SharePointのドキュメントルートフォルダーにアクセスすると、添付ファイルありのメールの分だけ、フォルダーが作成されていることが分かります(添付ファイルがないメールのフォルダーは作成されません)。

図表6-7 動作確認(SharePointのドキュメントルートの確認)

図表6-7 動作確認(SharePointのドキュメントルートの確認)

 

チャネルID確認(参考)

この例では、Teamsのチームチャネルは一般(General)のみを使用しました。
送信元のメールアドレスや件名のキーワード等に応じてメールを複数のTeamsチャネルに振り分けたい場合、振り分けの条件分岐内でチャネルIDの値を変数に格納し、Teams投稿アクションのチャネルIDとしてこの変数を渡すような処理が必要となります。
参考までチャネルIDの確認方法を紹介します。

 

なお、以前はWebブラウザーでTeamsの対象チャネルにアクセスし、そのURLからチャネルIDを取得する方法が可能でした。最近仕様が変わったのか、2024年9月時点でその方法では取得できませんでした。

 

システム管理者であれば、Teams管理センターで対象チャネルのリンクを取得することで確認できます。

図表7-1 Teams管理センターで確認

図表7-1 Teams管理センターで確認

 

別の方法として、Teamsのデスクトップアプリからチャネルのリンクを取得することで確認できます。この方法なら管理センターのアクセス権がないユーザーでも確認できます

図表7-2 Teamsのデスクトップアプリで確認

図表7-2 Teamsのデスクトップアプリで確認

 

おわりに

Power Automateを使用すると、プログラムを組まなくてもちょっとした効率化機能を簡単に作成できます。
ただし、精度を上げようとすると、前の記事で紹介したような実装上の注意点が色々と出てきます(HTMLソースを記述すると画面表示がおかしくなる等、不具合ではないかと思う仕様もありますが)。
処理に失敗しても機能の所有者に通知メールが届くようになっているので、運用しながら改良していけると良いでしょう。

 

 

当ブログ内の連載記事

elmgrn.hatenablog.com