受信したメールメッセージを取得する
次に、同じアカウントで、受信したメールの内容を取得してみましょう。
同じメールアカウントを使用するため、前節の「[4]カスタムオブジェクトにする」までは同様のため、フローをコピーします。
[1]メール送信のフローをコピーする
「メールを送信する」で作成したフローをコピーします。
フローデザイナーを開き、[Ctrl]+[A]を押して、すべてのアクションを選択後、[Ctrl]+[C]を押して、選択されているアクションをクリップボードにコピーします。
[2]新しいフローを作成する
Power Automate Desktopのトップ画面より[+新しいフロー]をクリックして、適切な名前で新規のフローを[作成]します。
[3]クリップボードのフローを貼り付ける
フローデザイナーのワークスペースをクリックして、[Ctrl]+[V]を押します。これで、クリップボードに退避してあったアクションを貼り付けられるので、一旦、ツールバーの保存ボタンで、フローを保存しておきましょう。
[4]不要な部分を削除する
件名を設定している[変数の設定]アクション以降は削除します。
[5]メールを取得する
[メール]アクショングループの[メールメッセージの取得]アクションを配置すると、設定ダイアログが開きます。
設定ダイアログが起動するので、以下のように情報を入力&保存します。
| 分類 | 項目 | 設定値(例) |
|---|---|---|
| IMAPサーバー | IMAPサーバー | imap.gmail.com |
| ポート | 993 (既定) | |
| ユーザー名 | %mailInfo.mail% | |
| パスワード | ドロップダウンで[変数としてのパスワードを入力]を選択。入力フィールドは%mailInfo.pass% | |
| メールフィルター | メールフォルダー | inbox |
| 取得 | 未読のメールメッセージのみ |
実行されると、変数RetrievedEmailsにはメールメッセージオブジェクトのリストが代入されます。このサンプルでは、データテーブル型変数にメール一覧を代入して、Excelシートに反映させます。まず、ヘッダーとして、項目名リストを定義してメールメッセージオブジェクトを行として追加していきます。
[6]データテーブル型変数を作成する
[変数]アクショングループの[変数の設定]アクションを配置すると、設定ダイアログが開きます。
以下の設定を入力し、保存します。
- 設定: %MailTable%
- 宛先: %{['From', '件名', '送信日時', '本文'] }%
データテーブル型の変数と作成や行追加の記法については、第4回「ファイルやフォルダーの操作を自動化する」で説明しているので、併せて参照してください。
[7]取得メッセージの個数だけループする
[ループ]アクショングループの[For each]アクションを配置すると、設定ダイアログが開きます。
以下の設定を入力し、保存します。
- 反復処理を行う値: %RetrievedEmails%
[8]メッセージオブジェクトをデータテーブル型の行に変換する
[変数]アクショングループの[変数の設定]アクションを[For each]と[End]の間に配置します。
設定ダイアログが開いたら、以下の設定を追加&保存します。
- 設定: %Message%
- 宛先: %{[CurrentItem['From'], CurrentItem['Subject'], CurrentItem['Date'], CurrentItem['BodyText']] }%
と設定して保存します。
CurrentItemは取得した個々のメールオブジェクトを示します。メールメッセージオブジェクトのプロパティは「電子メール - Power Automate | Microsoft Docs」から確認できます。
[9]データテーブル型変数に行を追加する
[変数]アクショングループの[変数の設定]アクションを[For each]と[End]の間の末尾に配置すると、設定ダイアログが開きます。
以下の設定を入力し、保存します。
- 設定: %MailTable%
- 宛先: %MailTable + Message%
[10]Excelを起動する
[Excel]アクショングループの[Excelの起動]アクションを[End]の下に配置してそのまま保存します。
[11]内容をExcelワークシートに書き込む
[Excel]アクショングループの[Excelワークシートに書き込み]アクションを配置すると、設定ダイアログが開きます。
以下の設定を入力し、保存します。
- 書き込む値: %MailTable%
- 列: 1
- 行: 1
[12]フローを実行する
フローデザイナーのツールバーの保存ボタンで保存して、フローデザイナーのツールバーの実行ボタンで実行開始します。実行が終わると、Excelワークシートに、取得した未読のメールメッセージの内容が表示されます。
[注意]Gmailメールメッセージを取得のアクションで認証エラーが発生した場合
Power Automate for Desktopのフローからメールを取得できない場合があります。
メールメッセージを取得のアクションで認証エラーが発生した場合は、以下を試してください。
GmailのIMAPが有効になっているか確認・有効化
[Gmail設定-メール転送とPOP/IMAP]にて、IMAPアクセスが無効であれば、有効にします。
Gmailのパスワードの利用について
2022/5/30以降、Google外のサードパーティーアプリではGmailのパスワードによる認証ができなくなります。
代わりにアプリパスワードを使用します。アプリパスワードは2段階認証プロセスを有効にしているアカウントでのみ使用できます。
まずは2段階認証プロセスを有効にしてから、アプリパスワードを生成します。
- [Googleアカウント-セキュリティ]を開きます
- [Googleへのログイン]で、[2段階認証プロセス]次の操作[使ってみる]を選択します
- 画面上の指示に沿って手順を完了します
- 再度[Googleアカウント-セキュリティ]を開きます
- [Googleへのログイン]で [アプリパスワード] をクリックします
- ログインが求められる場合はログインします
- アプリを選択で[メール]を選択します
- デバイスを選択で[Windowsパソコン]を選択します
- [生成]ボタンをクリックします
- 生成されたパスワードウィンドウの黄色地の16桁のパスワードをコピーします
- このパスワードをGmailのパスワードの代わりに使用します。具体的には記事の[メールアクセス情報.txt]ファイルのpassプロパティに上書きします(サードパーティーアプリアプリでのGmailの送受信に使用できます)
まとめ
メールの送受信のアクションについて説明しました。実際には、単体で使用するよりも他のアクションと組み合わせて取得したメールの内容に応じてフローを変化させたり、フローの結果によってメールの送信内容や宛先を変化させたりなどの利用方法が考えられます。
