Power Automate DesktopでGmailの受信トレイからメール取得
Gmailに届いたメールをPower Automate Desktopで処理するフローを作成してみます。
本記事は下の記事の続きで、リコール対象商品の新着メールサービス(消費者庁)を受信し、これを処理することを例としています。
Gmailの設定変更をする
Gmailの受信トレイに、リコール情報メールが未読状態であるものとして説明します。
なお、ここではGmailを利用していますが、Gmail以外にもIMAPが利用可能なメールサービスであれば実行可能です。
GmailでIMAPを有効化する
Gmailは初期状態でIMAP接続が無効なので有効化します。Gmailの右上にある設定(歯車)をクリックして設定変更画面を開きます(PC画面の場合)
設定画面の[メール転送とPOP/IMAP]の設定項目で、IMAPを有効化させ、設定を保存します。
Power Automate Desktop でのフロー作成
新しいフローを作成
Power Automate Desktopを起動させます。
- 1[新しいフロー]をクリックする
初めてフローを作成する場合、以下のような画面となります。[新しいフロー]をクリックして開始します。
- 2[フロー名]を入力
処理の内容が分かる名前をつけます。今回は「Gmailの受信メール処理」としました。フロー名を入力後に[作成]をクリック。
- 3別ウィンドウでフロー作成画面が開きます
左側のメニューにある「アクション」を組み合わせて、実行したい手順(フロ―)を作りあげていきます。
つづけて、メールメッセージ取得のアクションを作成します。
メールメッセージの取得アクションを作成
- 1[メールメッセージの取得]アクションをドラッグ&ドロップ
画面左のアクションメニューの[メール]の中にある[メールメッセージの取得]アクションを右側の領域にドラッグ&ドロップします
- 2[メールメッセージの取得]の設定1: IMAPサーバーの設定
ポップアップ画面が開きます。
IMAPサーバの設定箇所を以下のように入力・設定します。
GmailのIMAP設定詳細については、以下参考にしました。
- 3[メールメッセージの取得]の設定2: メールフィルターの設定
同じポップアップ画面で、続けてメールフィルターを設定します。
今回の場合、消費者庁のリコール情報メールを対象とするので、以下のようにフィルターを設定します。
- メールフォルダー:inbox (※ 受信トレイを指します)
- 取得:未読のメールメッセージのみ
- 開封済みにする:ON (※情報取得後は開封済みにします)
- 送信元フィールドに次が含まれる:recall.n@caa.go.jp
- 件名に次が含まれる:リコール情報
最後に[保存]をクリックします。
- 4[メールメッセージの取得]アクションがフローに追加される
メールメッセージの取得のアクションがフローに追加されたことが確認できます。取得したメール情報が格納されるフロー変数も右側に表示されます。
なお、追加されたアクションの設定を修正・変更したい場合は、各アクションをダブルクリックすると設定画面が開きますので、適宜修正・変更可能です。
- 5フローを停止するアクションを追加
つづけて、メール情報の取得後にフローが停止するようにアクションを追加します。
アクションメニューの[フローコントロール]の中にある[フローを停止する]をドラッグ&ドロップします。
- 6ポップアップが表示される
[保存]をクリックします
- 7[フローを停止する]のアクションが追加される
[メールメッセージの取得]アクションの次に、[フローを停止する]アクションが追加されました。
フローを実行する
作成したメールメッセージ取得のフローを実行
- 1実行ボタンをクリック
画面上部の[実行]ボタンをクリックすると、フローに追加されたアクションを上から順に実行します
- 2実行中
実行中のアクションは水色に反転します
- 3フロー実行完了
フローの実行が完了して、メール情報を取得できていれば、右側のフロー変数にメールのテキストの一部が表示されます。
フロー変数の中身はダブルクリックすると見られます。
- 4フロー変数をダブルクリックすると表示される内容
さらに[詳細表示]をクリックします
- 5変数に格納されているプロパティの確認
「.Body」と「.BodyText」のプロパティにメール本文が格納されていることがわかります。
さらに[詳細表示]をクリックします。
- 6メール本文のテキスト情報が確認
取得したメール本文が確認できます。
この取得したテキスト情報に対して、さらにアクションを追加していくことで自動化処理を作り上げていきます。
なお、本記事ではリコール情報のメールを例としていますが、送信元アドレスや件名に含まれる文字の条件を変えることで、他のメールにも応用が利くかと思います。
GmailのIMAP認証でエラーが出た場合
Gmailの場合はGoogleアカウントのセキュリティ設定によっては、フローの途中で以下のようなエラーが出ることがあります。
このような場合、Gmailのヘルプにある対処方法に従い、Googleアカウントの設定変更をする必要があります。
ログインできない場合の対処方法を読むと、2段階認証を設定しているかいないかで2つに分かれるようです。
- 2段階認証を使用している場合:アプリパスワードを使ってログインする
- 2段階認証を使用していない場合:安全性の低いアプリがアカウントにアクセスすることを許可する
それぞれ、Gmailヘルプの各リンクから各自のGoogleアカウント設定を確認・設定変更してから、改めて作成したフローを実行してみてください。
なお、2段階認証プロセスを使用している場合で、アプリパスワードを使った場合の例を下に参考記載します。
参考:2段階認証プロセスを使用していて、アプリパスワードを使う場合
上のヘルプで2段階認証プロセスを使用している場合の指示をたどっていくと、以下のように「アプリパスワードでログインする」のページが表示されます。
アプリパスワードは2段階認証を設定している場合のみに発行できる、特殊なパスワードです。
ヘルプの指示に従い、Googleアカウントからアプリパスワードを発行すると、以下のように16桁のパスワードが表示されます。
このアプリパスワードをGmailのパスワードの代わりに使います。
Power Automate Desktopのフロー作成画面に戻り、以下のようにアプリパスワードを入力してください。
- 1[メールメッセージの取得]アクションをダブルクリック
フローの作成画面で[メールメッセージの取得]をダブルクリックします
- 2設定画面で「アプリパスワード」を入力して保存する
既に入力済みの項目のうち、[パスワード]だけを「アプリパスワード」に書き換えます。
アプリパスワードを入力したら[保存]をクリックします。
アプリパスワードを入力後に[保存]をクリックし、パスワード変更を反映させます。
- 3フローの再実行
フローを再実行してメール情報が取得できるか確認します。なお事前にGmailの受信トレイに、リコール情報の未読メールが最低1通はあることを確認しておいてください。