forked from googleworkspace/apps-script-samples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgmail.gs
99 lines (94 loc) · 2.79 KB
/
gmail.gs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/**
* Copyright Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// [START apps_script_gmail_label]
/**
* Lists the user's labels, including name, type,
* ID and visibility information.
*/
function listLabelInfo() {
var response =
Gmail.Users.Labels.list('me');
for (var i = 0; i < response.labels.length; i++) {
var label = response.labels[i];
Logger.log(JSON.stringify(label));
}
}
// [END apps_script_gmail_label]
// [START apps_script_gmail_inbox_snippets]
/**
* Lists, for each thread in the user's Inbox, a
* snippet associated with that thread.
*/
function listInboxSnippets() {
var pageToken;
do {
var threadList = Gmail.Users.Threads.list('me', {
q: 'label:inbox',
pageToken: pageToken
});
if (threadList.threads && threadList.threads.length > 0) {
threadList.threads.forEach(function(thread) {
Logger.log('Snippet: %s', thread.snippet);
});
}
pageToken = threadList.nextPageToken;
} while (pageToken);
}
// [END apps_script_gmail_inbox_snippets]
// [START apps_script_gmail_history]
/**
* Gets a history record ID associated with the most
* recently sent message, then logs all the message IDs
* that have changed since that message was sent.
*/
function logRecentHistory() {
// Get the history ID associated with the most recent
// sent message.
var sent = Gmail.Users.Threads.list('me', {
q: 'label:sent',
maxResults: 1
});
if (!sent.threads || !sent.threads[0]) {
Logger.log('No sent threads found.');
return;
}
var historyId = sent.threads[0].historyId;
// Log the ID of each message changed since the most
// recent message was sent.
var pageToken;
var changed = [];
do {
var recordList = Gmail.Users.History.list('me', {
startHistoryId: historyId,
pageToken: pageToken
});
var history = recordList.history;
if (history && history.length > 0) {
history.forEach(function(record) {
record.messages.forEach(function(message) {
if (changed.indexOf(message.id) === -1) {
changed.push(message.id);
}
});
});
}
pageToken = recordList.nextPageToken;
} while (pageToken);
changed.forEach(function(id) {
Logger.log('Message Changed: %s', id);
});
}
// [END apps_script_gmail_history]