回答編集履歴

2

別方法の追記

2023/08/03 01:46

投稿

YAmaGNZ
YAmaGNZ

スコア10542

test CHANGED
@@ -8,3 +8,17 @@
8
8
  var threads = GmailApp.search(`after: ${now}` + " subject:" + subjectToSearch);
9
9
  ```
10
10
  といった感じで指定の日時以降のメールを検索できます。
11
+
12
+ もしくは未読のメールのみ対象とするとか
13
+ ```JavaScript
14
+ var threads = GmailApp.search("is:unread subject:" + subjectToSearch);
15
+ ```
16
+ とすれば未読のメールが対象となります。
17
+ 既読にするには
18
+ ```JavaScript
19
+ for (var i = 0; i < threads.length; i++) {
20
+ threads[i].markRead();
21
+ var messages = threads[i].getMessages();
22
+
23
+ ```
24
+ とすればいいでしょう。

1

コードの追記

2023/08/02 11:46

投稿

YAmaGNZ
YAmaGNZ

スコア10542

test CHANGED
@@ -1,2 +1,10 @@
1
1
  メールを取得する際に日時指定してはどうですか?
2
2
  そして、取得し終わったらその最終日時を覚えておいて、次回のメール取得時にその時間を開始日時とすれば、以前に取得したメールを再度取得しないと思いますが。
3
+
4
+ ```JavaScript
5
+ const date = new Date(); //現在時刻を取得(本当なら最終のメールの時間とする)
6
+ const now = Math.floor(date.getTime()/1000); //ミリ秒単位なので秒に変換
7
+
8
+ var threads = GmailApp.search(`after: ${now}` + " subject:" + subjectToSearch);
9
+ ```
10
+ といった感じで指定の日時以降のメールを検索できます。