GSuiteのアクティビティメールメッセージを取得(GetMailMessages)を利用して、メール情報をエクセルに記載する(件名、取得日時等)という動作をおこないたいです。
受信日が古い日付のメールから1件づつ情報を取得してExcelに登録したいのですが、最新の日から処理を始めてしまいます。
Gmial、Uipathどちらの設定を見直せば、古い受信日からの取得ができますか。
(メールを選択する方法の検索式は” after:yyyy / mmm / dd”で設定しております。)
GSuiteのアクティビティメールメッセージを取得(GetMailMessages)を利用して、メール情報をエクセルに記載する(件名、取得日時等)という動作をおこないたいです。
受信日が古い日付のメールから1件づつ情報を取得してExcelに登録したいのですが、最新の日から処理を始めてしまいます。
Gmial、Uipathどちらの設定を見直せば、古い受信日からの取得ができますか。
(メールを選択する方法の検索式は” after:yyyy / mmm / dd”で設定しております。)
こんにちは
単純に配列の中身を逆順にすればよいだけであれば、Array.Reverseメソッドを使うと良いと思います。
あるいはメールヘッダの日付を評価して古い順に並べるのであれば、例えば以下の式が考えられます。
mails = mails.OrderBy(Function(m) DateTime.Parse(System.Text.RegularExpressions.Regex.Match(m.Headers("Date"),"^[^\(]+\w").Value)).ToArray()
情報ありがとうございます。
頂いた情報で試したところ、古い受信日で記載は行えましたが、メールの取得対象自体は最新の日付ととる動きとなりました。
例 2021/07/014 以降の受信メールを3件とる
受信メールが下記の場合、取得したいのは●の3件(7/14 →7/15→7/16 の順に処理を行う)
実際は★を取得して7/20→7/26→7/30の順に処理する動きとなった
受信日:7/30 ★
受信日:7/26 ★
受信日:7/20 ★
受信日:7/19
受信日:7/16 ●
受信日:7/15 ●
受信日:7/14 ●
取得は最新の日付からでその範囲の古い受信日から処理しておりました。
メールの受信件数が少ないうちは取得件数を多く設定してカバーができますが、根本的な解決にはならなそうです。
Gmailの仕様上難しいのかなと感じ、記載したExcelを並び替える方法で対応検討してみます。