Power Automate Desktop メールの抽出対象を日付範囲で指定
現状、メールのフィルターには日付を範囲する項目がありません。
その代替として、この記事ではメールの日付による条件指定の方法を紹介します。
前提としてこの取得時点ではフィルタリングできません。
取得したメールに対して条件判定を行うことで実現します。
Robin言語(コピー&ペースト用)
Power Automate Desktopにコピー&ペーストして利用可能です。
Outlook用。
Outlook.Launch Instance=> OutlookInstance
Outlook.RetrieveEmailMessages.RetrieveEmails Instance: OutlookInstance Account: `` MailFolder: $'''受信トレイ''' EmailsToRetrieve: Outlook.RetrieveMessagesMode.All MarkAsRead: True Messages=> RetrievedEmails
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateOnly CurrentDateTime=> CurrentDateTime
DateTime.Add DateTime: CurrentDateTime TimeToAdd: -30 TimeUnit: DateTime.TimeUnit.Days ResultedDate=> FromDate
DateTime.Add DateTime: CurrentDateTime TimeToAdd: -1 TimeUnit: DateTime.TimeUnit.Days ResultedDate=> ToDate
LOOP FOREACH CurrentMail IN RetrievedEmails
Text.ConvertTextToDateTime.ToDateTime Text: CurrentMail.Date DateTime=> MailDate
IF (FromDate <= MailDate AND MailDate <= ToDate) = True THEN
# 対象メールへのアクション
Display.ShowMessageDialog.ShowMessage Message: CurrentMail.Date Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
END
END
Outlook以外。
Email.RetrieveEmails.Retrieve IMAPServer: `` Port: 993 EnableSSL: True Username: `` Password: `` AcceptUntrustedCertificates: False MailFolder: `` MailsToRetrieve: Email.RetrieveMessagesMode.All MarkAsRead: True RetrievedEmails=> RetrievedEmails
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateOnly CurrentDateTime=> CurrentDateTime
DateTime.Add DateTime: CurrentDateTime TimeToAdd: -30 TimeUnit: DateTime.TimeUnit.Days ResultedDate=> FromDate
DateTime.Add DateTime: CurrentDateTime TimeToAdd: -1 TimeUnit: DateTime.TimeUnit.Days ResultedDate=> ToDate
LOOP FOREACH CurrentMail IN RetrievedEmails
Text.ConvertTextToDateTime.ToDateTime Text: CurrentMail.Date DateTime=> MailDate
IF (FromDate <= MailDate AND MailDate <= ToDate) = True THEN
# 対象メールへのアクション
Display.ShowMessageDialog.ShowMessage Message: CurrentMail.Date Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
END
END
解説
まず最初に「メール メッセージの取得」を設置します。
もし受信メールがOutlookに登録されているメールアドレスの場合、
「Outlook を起動します」と「Outlook からメール メッセージを取得します」に替わります。
このオプションのメールフィルター中(日付以外)で可能な限り件数を絞ることが出来れば理想的です。
次に検索範囲を日時変数で用意します。
日付の範囲はフローによって異なりますが、
今回の例では現在日時の前日~30日前を条件にします。
「現在の日時を取得する」で「現在の日付のみ」取得します。
次に「加算する日時」を二つ設置して前日と30日前の日付の変数を作成します。(生成する変数名は任意)
項目 | 前日 | 30日前 |
---|---|---|
日時 | %CurrentDateTime% | %CurrentDateTime% |
加算 | -1 | -30 |
時間単位 | 日 | 日 |
生成された変数の名前 | %ToDate% | %FromDate% |
次にFor eachを設置し、反復を行う値に%RetrievedEmails%を指定します。
生成された変数の名前を%CurrentMail%に変更していますが任意です。
次に「テキストをdatetime に変換」アクションを設置します。
変換するテキストに「%CurrentMail.Date%」(中身は日付ですが、テキストに自動変換されます)
生成された変数にMailDateを指定します。(変数名は任意)
「If」 のオプションは次のように設定します。
項目 | 設定値 |
---|---|
最初のオペランド | %FromDate <= MailDate AND MailDate <= ToDate% |
演算子 | と等しい(=) |
2番目のオペランド | %True% |
最後に「If」 の中に条件に合致する場合に実施するアクションを設置すれば完了です。
Power Automate Desktopを効率的に習得したい方へ
当サイトの情報を電子書籍用に読み易く整理したコンテンツを
買い切り950円またはKindle Unlimited (読み放題) で提供中です。
Word-A4サイズ:1,700ページの情報量で
(実際のページ数はデバイスで変わります)
基本的な使い方から各アクションの詳細な使い方、
頻出テクニック、実用例を紹介。(目次)
体系的に学びたい方は是非ご検討ください。
アップデートなどの更新事項があれば随時反映しています。(更新履歴)
なお購入後に最新版をダウンロードするには
Amazonへの問い合わせが必要です。