fc2ブログ

Power AutomateでOutlookメールを抽出する

 MicrosoftのRPA(Robotic Process Automation)ツールのPower Automateを久々に触ってみました。昨年3月のPDFファイルからのテキスト抽出に使って以来です。

 今回は日頃使っているOutlookメールで所定フォルダに仕分けられているメールを全抽出し、テキストファイル(csvファイル)に書き込みました。全体のフローは以下の通りでループはありますが、6ステップです。順を追って説明します。MailListSave1_230122.png
1. メールメッセージの取得
 IMAPサーバからメールを読み込むための設定を行います。MailListSave2_230122.pngIMAPサーバ、ポートの設定内容は、事前にOutlookを立ち上げて確認しておきます。MailListSave3_230122.pngユーザ名、パスワードはOutlookに接続するために使っているものを設定しました。
 メールフィルタはターゲットの仕分けしたメールフォルダ(今回は「日経Myニュース」)を設定しました。取得されたメールは変数RetrievedEmailsに保存されます。MailListSave4_230122.png
2. 新しいリストの作成
 ターゲットのメールフォルダ内には複数のメールがあるので、各情報をリスト変数Listに代入していきます。MailListSave5_230122.png
3.〜5. データ読み込みのループ
 ループはFor eachを使って、RetrievedEmailsの数だけ繰り返す設定です。ループ時のカウンタの変数はCurrentItemです。MailListSave6_230122.png For eachループの中で処理する内容は以下の通りで、メールの本体(BodyText)部分をリスト(変数List)に追加していきます。MailListSave7_230122.png
6. CSVファイルに書き込み
 変数Listの内容をローカルのストレージに保存します。csvファイルでなく、txtファイルでも良いですが、ここではMailList.csvとしました。MailListSave8_230122.pngMailListSave9_230122.png
 実行するとフォルダ内の475件のメールを順次読み込んでいきました。実行速度はそれほど高速ではなく、3分程度かかりました。csvファイルには約50,000行の結果が出力されていました。左側が出力csvファイルで、右側が該当するメールです。MailListSave10_230122.png
 今回はメール本体のそのままの文章を出力しましたが、必要な部分をもう少し絞り込んで、整理整頓させて出力することもできそうです。Power Automateですが、プログラミングせずに、ノーコード・ローコードで希望の処理が実行できることで、注目されていますが、プログラミングに慣れている人からすると逆に面倒臭い感がありますね。これも慣れの問題と思いますが・・。また、何かにPower Automate使ってみようと思います。
スポンサーサイト



コメント

非公開コメント

ご訪問者数

(Since 24 July, 2016)

タグクラウド


プロフィール

Dr.BobT

Author: Dr.BobT
興味のおもむくままに生涯考え続けるエンジニアでありたい。

月別アーカイブ

メールフォーム

名前:
メール:
件名:
本文: