質問編集履歴
1
追加の質問
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
GAS 同じ添付ファイルを入手しないようにしたい
|
1
|
+
GAS 同じ添付ファイルを入手しないようにしたい 当日の添付ファイルを取得したい
|
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
インターネットから入手したGASのスクリプトです。 1分毎に実行したところ、すでにGoogleドライブへ取り込んだ添付ファイルを何回も取得してしまいます。一度、取得した添付ファイルを取得しないようにしたい。
|
2
|
+
インターネットから入手したGASのスクリプトです。 1分毎に実行したところ、すでにGoogleドライブへ取り込んだ添付ファイルを何回も取得してしまいます。一度、取得した添付ファイルを取得しないようにしたい。日付を取得し、過去の添付ファイルを取得しないようにしたい
|
3
3
|
|
4
4
|
```ここに言語を入力
|
5
5
|
function FaxFileUploader() {
|
@@ -7,15 +7,30 @@
|
|
7
7
|
//変数準備 (******には、GoogleドライブのID)
|
8
8
|
var target_folder = DriveApp.getFolderById('**********');
|
9
9
|
var query_condition = "label:未処理";
|
10
|
-
|
10
|
+
var sheetName = 'シート1'; // 記録するシートのタブ名
|
11
|
+
var messageIdSheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
|
12
|
+
if (messageIdSheet == null) {
|
13
|
+
console.log(`エラー:シート「${sheetName}」が見つかりませんでした。終了します。`);
|
14
|
+
return;
|
15
|
+
}
|
16
|
+
var lastRow = messageIdSheet.getLastRow();
|
17
|
+
var messageIds = lastRow > 0 ? messageIdSheet.getRange(1, 1, messageIdSheet.getLastRow(), 1).getValues().flat() : [];
|
11
18
|
//処理対象メール取得
|
12
19
|
var threads = GmailApp.search(query_condition);
|
13
20
|
var messages = GmailApp.getMessagesForThreads(threads);
|
14
21
|
|
15
22
|
if(messages.length > 0){
|
16
|
-
|
17
23
|
for(var i = 0; i < messages.length; i++) {
|
18
24
|
for(var j = 0; j < messages[i].length; j++) {
|
25
|
+
// メッセージIDを取得する。
|
26
|
+
const mid = messages[i][j].getId();
|
27
|
+
// すでに取得済みのメールであれば処理をスキップ。
|
28
|
+
if (messageIds.includes(mid)) {
|
29
|
+
continue;
|
30
|
+
}
|
31
|
+
// 取得したメッセージIDをシートに記録するとともに配列に加える。
|
32
|
+
messageIdSheet.appendRow([mid])
|
33
|
+
messageIds.push(mid);
|
19
34
|
var attach = messages[i][j].getAttachments();
|
20
35
|
for(var k = 0; k < attach.length; k++){
|
21
36
|
target_folder.createFile(attach[k]);
|
@@ -27,9 +42,7 @@
|
|
27
42
|
threads[i].removeLabel(label1);
|
28
43
|
threads[i].addLabel(label2);
|
29
44
|
}
|
30
|
-
|
31
45
|
}
|
32
|
-
|
33
46
|
}
|
34
47
|
```
|
35
48
|
|