【Power Automate】特定の宛先で受信したメールをエクセルに出力する

ネコニウム研究所

PCを利用したモノづくりに関連する情報を掲載するブログ

【Power Automate】特定の宛先で受信したメールをエクセルに出力する

2021-12-3 | ,

M 365 環境下で特定の宛先で受信したメールをエクセルに出力したい!

例えば、問い合わせ用のグループメールアドレスを作っておいて、そこで受信したメールをエクセルに登録して行くことを想定してます。

皆さん、ローコード開発は好きですか?私は逆に覚えることが多いように感じてあまり好きじゃないです!!!

仕様書

  • 特定のメールアドレス宛にメールが届いたら、指定の xlsx ファイルにメールの内容を出力する。
  • xlsx ファイルは、OneDrive または、SharePoint に保管する。
  • ID はメールを受信する度に 1 ずつインクリメントする。

手順書

出力先の xlsx ファイルの準備

  1. OneDrive なり SharePoint なりに出力先の xlsx ファイルを作る。
  2. テーブルを作成する。今回は下記のような感じにした。
    テーブルの作成は、範囲を選択 -> タブ「挿入」->「テーブル」->「先頭業をテーブルの見出しとして使用する」にチェック -> 「OK」より行える。
ID Datetime From Subject Body
1 からカウント開始 メールの受信日時 メールの発信先メールアドレス メールの件名 メールの本文

Power Automate にてフロー作成

  1. Power Automate にアクセスして「マイフロー」 -> 「新しいフロー」 -> 「自動化したクラウド フロー」の順にクリックする。
  2. 「フロー名」は任意の名前、「フローのトリガーを選択してください」には「新しいメールが届いたとき(V3)」を設定する。
  3. 「フローの編集」へ推移するので「新しいメールが届いたとき(V2)」を設定する。
    フィルダーは「Inbox」、宛先に xlsx ファイルに出力したい受信メールアドレス(今回は例として「inquery@example.com」とする)を入力する。
  4. 新しいステップ「タイム ゾーンの変換」を追加する。
    「基準時間」は動的コンテンツから「受信日時」、「変換元のタイムゾーン」は「(UTC)協定世界時」、「変換先のタイムゾーン」は「(UTC+9:00)大阪、札幌、東京」、「書式設定文字列」はカスタム文字列として「yyyy-MM-dd HH:mm:ss」と入力する。
  5. 新しいステップ「変数を初期化する」を追加する。
    名前は「日時」、種類は「文字列」、値は動的なコンテンツにある「変換後の時間」とする。名前は任意で良い。
  6. 新しいステップ「表内に存在する行を一覧表示」を追加する。
    場所、ドキュメントライブラリ、ファイル、テーブルで出力先の xlsx ファイルとテーブルを指定する。
  7. 新しいステップ「変数を初期化する」を追加する。
    名前は「行情報」、種類は「アレイ」、値は動的なコンテンツにある「value」とする。名前は任意で良い。
  8. 新しいステップ「変数を初期化する」を追加する。
    名前は「行数」、種類は「整数」、値は式で「length(variables('行情報'))」とする。
  9. 新しいステップ「変数の値を増やす」を追加する。
    名前は「行数」。値は「1」とする。
  10. 新しいステップ「表に行を追加」を追加する。
    場所、ドキュメントライブラリ、ファイル、テーブルで出力先の xlsx ファイルとテーブルを指定する。その下にテーブルの列が表示されているはずなので ID は「行数」、Datetime は「日時」、From は「差出人」、Subject は「件名」、Body は「本文のプレビュー」[1] をそれぞれ動的なコンテンツから設定する。
  11. 画面の右上の「保存」をクリックしてフローを保存する。

[1] 「本文」にすると HTML やらヘッダー情報やらが表示されて xlsx ファイル上では見辛くなる。

テスト

  1. 画面の右上の「テスト」->「手動」->「テスト」をクリックしたら、指定した受信メールアドレス(今回は例として「inquery@example.com」にメールを送信して、xlsx ファイルに出力されるかテストしよう!

まとめ

こういうローコード開発って慣れれば、素早く目的を達成できるような気もする。しかし、大量のコンポーネント的なものの使い方を覚えるまでが大変だ…。…大変だ…。