SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Power Automate Desktopチュートリアル

Windows10の無償デスクトップ自動化ツール「Power Automate Desktop」でメール操作を自動化する

Power Automate Desktopチュートリアル 第8回


受信したメールメッセージを取得する

 次に、同じアカウントで、受信したメールの内容を取得してみましょう。

 同じメールアカウントを使用するため、前節の「[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]アクションを配置すると、設定ダイアログが開きます。

For eachアクションを配置
For eachアクションを配置
For eachアクションの設定
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]の下に配置してそのまま保存します。

Excelの起動アクションを配置
Excelの起動アクションを配置

[11]内容をExcelワークシートに書き込む

 [Excel]アクショングループの[Excelワークシートに書き込み]アクションを配置すると、設定ダイアログが開きます。

Excelワークシートに書き込みアクションを配置
Excelワークシートに書き込みアクションを配置
Excelワークシートに書き込みアクションの設定
Excelワークシートに書き込みアクションの設定

 以下の設定を入力し、保存します。

  • 書き込む値: %MailTable%
  • 列: 1
  • 行: 1

[12]フローを実行する

 フローデザイナーのツールバーの保存ボタンで保存して、フローデザイナーのツールバーの実行ボタンで実行開始します。実行が終わると、Excelワークシートに、取得した未読のメールメッセージの内容が表示されます。

メール取得フローを実行
メール取得フローを実行
取得したメール一覧
取得したメール一覧

[注意]Gmailメールメッセージを取得のアクションで認証エラーが発生した場合

 Power Automate for Desktopのフローからメールを取得できない場合があります。

 メールメッセージを取得のアクションで認証エラーが発生した場合は、以下を試してください。

認証エラー
認証エラーの図

GmailのIMAPが有効になっているか確認・有効化

 [Gmail設定-メール転送とPOP/IMAP]にて、IMAPアクセスが無効であれば、有効にします。

IMAPアクセス
IMAPアクセス

Gmailのパスワードの利用について

 2022/5/30以降、Google外のサードパーティーアプリではGmailのパスワードによる認証ができなくなります。

 代わりにアプリパスワードを使用します。アプリパスワードは2段階認証プロセスを有効にしているアカウントでのみ使用できます。

 まずは2段階認証プロセスを有効にしてから、アプリパスワードを生成します。

  1. Googleアカウント-セキュリティ]を開きます
  2. [Googleへのログイン]で、[2段階認証プロセス]次の操作[使ってみる]を選択します
  3. 画面上の指示に沿って手順を完了します
  4. 再度[Googleアカウント-セキュリティ]を開きます
  5. [Googleへのログイン]で [アプリパスワード] をクリックします
  6. ログインが求められる場合はログインします
  7. アプリを選択で[メール]を選択します
  8. デバイスを選択で[Windowsパソコン]を選択します
  9. [生成]ボタンをクリックします
  10. 生成されたパスワードウィンドウの黄色地の16桁のパスワードをコピーします
  11. このパスワードをGmailのパスワードの代わりに使用します。具体的には記事の[メールアクセス情報.txt]ファイルのpassプロパティに上書きします(サードパーティーアプリアプリでのGmailの送受信に使用できます)
アプリパスワード
アプリパスワード

まとめ

 メールの送受信のアクションについて説明しました。実際には、単体で使用するよりも他のアクションと組み合わせて取得したメールの内容に応じてフローを変化させたり、フローの結果によってメールの送信内容や宛先を変化させたりなどの利用方法が考えられます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Power Automate Desktopチュートリアル連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 飯島 聡(WINGSプロジェクト イイジマ サトシ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/15729 2022/05/18 13:55

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー