Power Automate Desktop|メール本文からテキストを抽出する方法

Power Automate for desktopを使って、メール本文からテキストを抽出する方法を解説します。

受信したメールメッセージの内容からメールアドレスや日時などの特定の内容(エンティティと呼びます)を取得して、後続のフローで使用したいケースがあります。本記事では、メール本文からメールアドレスを抽出する例を解説します。フローを作ってもらえば、下図のメール本文から「taro.test@outlook.jp」が抽出できます。

それでは、どうぞ!

この記事を書いた人
この記事を書いた人
こさい
こさい

(株)完全自動化研究所代表のこさいです。

1) エンジニア歴25年超。RPA開発および支援8年超
2) RPA関連の書籍を5冊出版。現在はGPT×PADの書籍を執筆中!
3)当サイトのプレミアム会員募集中!無限回答、動画見放題。詳しくはこちら

メール本文からテキストを抽出する方法

メール本文からテキストを抽出するには[エンティティをテキストで認識する]アクションを使用します。[エンティティをテキストで認識する]アクションは[テキスト]アクショングループ内に格納されています。

[認識を行うテキスト]にエンティティを認識するテキストを入力します。本記事の例で言うと「メール本文」です。次に[エンティティの種類]を選択します。エンティティの種類は16種類用意されています。[日次][数値][メール]といった定型のエンティティが用意されているので、下図をよく確認してください。

認識されたエンティティは、[生成された変数]に格納されます。

メール本文からテキストを抽出するフローを作成しよう

フローを作成しよう

STEP1 [メールメッセージの取得]アクションを追加する

Power Automate Desktop|IMAPサーバーでメールを受信する方法」を参考に、[メールメッセージの取得]アクションを追加・設定してください。上記記事で解説しているように、メールメッセージが1件以上存在するように、テストメールを送信しておいてください。

STEP2 [エンティティをテキストで認識する]アクションを追加する

アクションペインの[テキスト]アクショングループをクリックし、[エンティティをテキストで認識する]アクションを[メールメッセージの取得]アクションの後に追加してください

STEP3 [認識を行うテキスト]アクションを入力する

[認識を行うテキスト]ダイアログが表示されます。[認識を行うテキスト]の[変数の選択]をクリックしてください。フロー内で使用可能な変数の一覧が表示されるので、[RetrievedEmails]をダブルクリックしてください

[認識を行うテキスト]に「%RetrievedEmails%」と入力されるので、これを少し修正します。後ろ側の「%」の前に「[0].BodyText」と入力してください。「%RetrievedEmails[0].BodyText%」となります。

めーたん
めーたん

[0]ってなんで必要?

RetrievedEmailsに複数のメールメッセージが格納されている可能性があるから、ゼロ番目(1個目)を取ってくるという意味だよ。

こさい
こさい
めーたん
めーたん

.BodyTextは?

メール本文のこと。RetrievedEmails[0]じゃ、まだメールメッセージそのものを指しているだけだからね。

こさい
こさい

STEP4 [エンティティの種類]を選択する

次にエンティティの種類を選択します。[エンティティの種類]のドロップダウンリストをクリックして、[メール]を選択してください

STEP5 保存する

設定が完了したので、[保存]をクリックしてください。

こさい
こさい

これで完了だよ!
こういう風に出来上がったかな?

できた!
さっそく動かそう!

めーたん
めーたん

フローを実行しよう

フローを実行してください。フローが無事に終了したら、テストメールの本文からメールアドレスが抽出できたかを変数ペインで確認しましょう。

うまく動作したら、「taro.test@outlook.jp」が抽出できているはずです。

まとめ

今回は[エンティティをテキストで認識する]アクションを使って、テキストの中から特定のエンティティを取得する方法を解説しました。

メールアドレスの他に、さまざまなエンティティを取得することができます。「請求書の中から、通貨を取り出したい」とか「テキストファイルに打ち込んでいるメモの中から電話番号を抜き出したい」とか、色々な応用が考えられますよ。

コメント ログインすると書き込めます

  1. no name より:

    はじめまして。
    大変参考になる内容で感謝しております。
    もし可能でしたら抽出した情報の出力方法まで教えていただけますと幸いです。
    よろしくお願いいたします。

    • こさいこさい より:

      はじめまして!こんにちは。
      例えば、抽出したメールアドレスをテキストファイルに書き込むとすると、
      [テキストをファイルに書き込む]アクションの[書き込むテキスト]に
      「%RecognizedEntities[0][‘Value’]%」と入力すればテキストファイルに出力できます。
      RecognizedEntitiesはデータテーブル型なので、データテーブルの値の抽出方法が
      わかれば、自由に扱うことができます。

      • no name より:

        こさい様
        早々に返信をいただきましてありがとうございます。
        変数出力方法教えていただき大変助かります。さっそく個人用の処理に追加させていただきます。
        PowerAutomateDesktopにしてはざっくりな機能ですが、試してみると便利だなと感じました。

        今後もサイトで勉強させていただきます。

        • こさいこさい より:

          こちらこそ、ありがとうございます!
          Power Automate for desktopは使い方を工夫すれば、かなり便利ですよね!
          僕も自分の仕事に活用しています。
          今後ともよろしくお願いします。