「Outlook メールメッセージを取得」 受信日フィルタ

いつも参考にさせていただいております。

以下の工程で作成しています。
1)(日付型の変数)myDate = datetime.Parse (“2020-6-25 17:14:07”)

2)(テキスト変数)myfilter = “[ReceivedTime] = ‘” + myDate.ToString(“yyyy/MM/dd H:mm:ss”) + "’”

3)「Outlook メールメッセージを取得」

取得結果が0件となります。メールボックスに、受信日時"2020-6-25 17:14:07"が存在します。
なぜ、取得できないのでしょうか?
受信日の日付+時刻で完全一致の値で取得したい。

ちなみに2)の右辺値を 下の「OK」の通りに変更すると取得できます。
NG:"[ReceivedTime] = ‘” + myDate.ToString(“yyyy/MM/dd H:mm:ss”) + "’"
OK:"[ReceivedTime] >= ‘” + myDate.ToString(“yyyy/MM/dd H:mm”) + "’"

よろしくお願い致します。

"[ReceivedTime] = ” + myDate
ではダメなんですかねぇ。

ReceivedTimeは日付型なので、myDateならそのまま聞けるのでは?

返信ありがとうございます。

"[ReceivedTime] = ” + myDate
では、残念ながらダメですね。

こんにちは。

過去に同話題で質問されて、途中で途切れてしまったようですね。
Outlook メールメッセージ取得 受信日時でフィルタ - 日本 / フォーラム - UiPath Community Forum

こちらで言われているように、メールメッセージの取得ではフィルタをかけずにいったん全件取得して、
その後にコレクションの繰り返しとかを使って
「[コレクションの要素のMailMessage変数].Headers(“DateRecieved”)」が一致するレコードを
探してみてはどうでしょうか。

ご返信ありがとうございます。

該当のメール情報の取得はできております。過去の同話題でも回答しております。

説明が難しいのですが、本来の目的は、
指定した期間内のメール情報取得し、その中で、本文の情報が該当するもの(ある文言が含まれているもの)だけを取得し、そのメール情報をメールの別フォルダ移動する。が大まかな内容です。

該当メールを再度、受信日をyyyy/MM/dd H:mm:ss を利用して「Outlook メールメッセージを取得」にフィルタで1つのメールを取得(特定)したい。

rfu様の
>「[コレクションの要素のMailMessage変数].Headers(“DateRecieved”)」が一致するレコードを
>探してみてはどうでしょうか。
一致するレコードではなく、一致するメールを取得したいです。

もし、受信日を日付+時刻(秒まで)の フォルタの記述がわかれば、お願い致します。

わかりにくい内容で誠に申し訳ございません。
よろしくお願い致します。

まずは「Outlookメールを受信」の段階で秒単位でのフィルタをかけるのは無理という前提になりますが。

いったんMailMessage<List>に、フィルタしてない状態のMailMessageのリストを作成します。
それを「コレクションの繰り返し」(TypeArgはMailMessage)にかけて、
各要素(item)の.Headers(“DateRecieved”)が指定の受信日時と一致した場合に、
その要素の「メール情報をメールの別フォルダに移動する」という処理を行えばよいのかなと思います。
(先の返信ではレコードと表現してしまいましたが、=リストの各要素=MailMessage、です)

ひとまずお試しいただければ。

ご返信ありがとうございます。

やはり、秒までのフィルタはできなさそうですね。

別の方法試してみます。

ありがとうございました。

1 Like