Class GmailApp

GmailApp

提供 Gmail 會話串、郵件和標籤的存取權。

方法

方法傳回類型簡短說明
createDraft(recipient, subject, body)GmailDraft建立電子郵件草稿。
createDraft(recipient, subject, body, options)GmailDraft使用選用引數建立電子郵件草稿。
createLabel(name)GmailLabel使用指定名稱建立新的使用者標籤。
deleteLabel(label)GmailApp刪除指定的標籤。
getAliases()String[]取得在 Gmail 中設為這個帳戶別名的電子郵件清單。
getDraft(draftId)GmailDraft依 ID 擷取電子郵件草稿。
getDraftMessages()GmailMessage[]擷取所有草稿訊息。
getDrafts()GmailDraft[]取得所有 Gmail 郵件草稿。
getInboxThreads()GmailThread[]無論標籤為何,都會擷取所有收件匣會話串。
getInboxThreads(start, max)GmailThread[]擷取特定範圍的收件匣會話串,不受標籤影響。
getInboxUnreadCount()Integer取得收件匣中的未讀取會話串數量。
getMessageById(id)GmailMessage依據 ID 取得訊息。
getMessagesForThread(thread)GmailMessage[]擷取指定會話串中的所有訊息。
getMessagesForThreads(threads)GmailMessage[][]擷取指定會話串中的所有訊息。
getPriorityInboxThreads()GmailThread[]擷取所有「優先收件匣」會話串,無論標籤為何。
getPriorityInboxThreads(start, max)GmailThread[]擷取各種「優先收件匣」會話串,不論標籤為何。
getPriorityInboxUnreadCount()Integer取得「優先收件匣」中的未讀取會話串數量。
getSpamThreads()GmailThread[]擷取所有垃圾郵件會話串 (不考慮標籤)。
getSpamThreads(start, max)GmailThread[]擷取各種垃圾郵件會話串,不論標籤為何。
getSpamUnreadCount()Integer取得屬於垃圾內容的未讀取會話串數量。
getStarredThreads()GmailThread[]擷取所有已加星號的執行緒,與標籤無關。
getStarredThreads(start, max)GmailThread[]擷取多個已加星號的討論串,與標籤無關。
getStarredUnreadCount()Integer取得已加星號的未讀取會話串數量。
getThreadById(id)GmailThread依 ID 取得會話串。
getTrashThreads()GmailThread[]無論標籤為何,都會擷取所有垃圾桶執行緒。
getTrashThreads(start, max)GmailThread[]擷取各種標籤的垃圾桶執行緒。
getUserLabelByName(name)GmailLabel擷取指定標籤名稱的標籤。
getUserLabels()GmailLabel[]擷取使用者建立的標籤清單。
markMessageRead(message)GmailApp將這封郵件標示為已讀取並強制重新整理。
markMessageUnread(message)GmailApp將這封郵件標示為未讀取,並強制重新整理郵件。
markMessagesRead(messages)GmailApp將這些訊息標示為已讀取並強制重新整理。
markMessagesUnread(messages)GmailApp將這些郵件標示為未讀取,並強制重新整理這些郵件。
markThreadImportant(thread)GmailApp將這個執行緒標示為重要,並強制重新整理執行緒。
markThreadRead(thread)GmailApp將這個執行緒標示為已讀取,並強制重新整理執行緒。
markThreadUnimportant(thread)GmailApp將這個執行緒標示為不重要,並強制重新整理執行緒。
markThreadUnread(thread)GmailApp將這個執行緒標示為未讀取,並強制重新整理執行緒。
markThreadsImportant(threads)GmailApp將這些執行緒標示為重要,並強制執行緒重新整理。
markThreadsRead(threads)GmailApp將這些執行緒標示為已讀取,並強制執行緒重新整理。
markThreadsUnimportant(threads)GmailApp將這些執行緒標示為不重要,並強制執行緒重新整理。
markThreadsUnread(threads)GmailApp將這些執行緒標示為未讀取,並強制執行緒重新整理。
moveMessageToTrash(message)GmailApp將郵件移至垃圾桶,強制重新整理郵件。
moveMessagesToTrash(messages)GmailApp將指定的郵件移至垃圾桶,並強制重新整理郵件。
moveThreadToArchive(thread)GmailApp將這個執行緒移至封存,並強制重新整理執行緒。
moveThreadToInbox(thread)GmailApp將這個會話串移至收件匣,並強制重新整理會話串。
moveThreadToSpam(thread)GmailApp將這個會話串移至垃圾內容並強制重新整理執行緒。
moveThreadToTrash(thread)GmailApp將這個會話串移至垃圾桶,並強制重新整理會話串。
moveThreadsToArchive(threads)GmailApp將這些執行緒移至封存,並強制執行緒重新整理。
moveThreadsToInbox(threads)GmailApp將這些會話串移至收件匣,並強制重新整理會話串。
moveThreadsToSpam(threads)GmailApp將這些會話串移至垃圾內容並強制重新整理,
moveThreadsToTrash(threads)GmailApp將這些會話串移至垃圾桶,並強制重新整理會話串。
refreshMessage(message)GmailApp從 Gmail 重新載入郵件及相關聯的狀態 (在標籤、已讀取狀態等發生變更時相當實用)。
refreshMessages(messages)GmailApp從 Gmail 重新載入郵件和相關狀態 (在標籤、已讀取狀態等發生變更時相當實用)。
refreshThread(thread)GmailApp從 Gmail 重新載入執行緒和相關狀態 (在標籤、讀取狀態等發生變更時相當實用)。
refreshThreads(threads)GmailApp從 Gmail 重新載入執行緒和相關狀態 (在標籤、讀取狀態等發生變更時相當實用)。
search(query)GmailThread[]根據指定的查詢搜尋 Gmail。
search(query, start, max)GmailThread[]根據指定的查詢搜尋 Gmail。
sendEmail(recipient, subject, body)GmailApp傳送電子郵件。
sendEmail(recipient, subject, body, options)GmailApp傳送含有選用引數的電子郵件訊息。
setCurrentMessageAccessToken(accessToken)void設定目前的訊息存取權杖,讓指令碼存取目前的 GmailMessage 屬性。
starMessage(message)GmailApp為這封郵件加上星號,並強制重新整理郵件。
starMessages(messages)GmailApp為這類郵件加上星號,並強制郵件重新整理。
unstarMessage(message)GmailApp移除這封郵件的星號,並強制重新整理郵件。
unstarMessages(messages)GmailApp移除這些郵件的星號,並強制郵件重新整理。

內容詳盡的說明文件

createDraft(recipient, subject, body)

建立電子郵件草稿。電子郵件 (包括標頭) 的大小有配額限制

// The code below creates a draft email with the current date and time.
var now = new Date();
GmailApp.createDraft("mike@example.com", "current time", "The time is: " + now.toString());

參數

名稱類型說明
recipientString以半形逗號分隔的電子郵件地址清單
subjectString電子郵件主旨
bodyString電子郵件內文

回攻

GmailDraft:新建立的 Gmail 草稿

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


createDraft(recipient, subject, body, options)

使用選用引數建立電子郵件草稿。電子郵件可包含純文字或 HTML 內文。電子郵件 (包括標頭但不含附件) 都有配額限制

// Create a draft email with a file from Google Drive attached as a PDF.
var file = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz');
GmailApp.createDraft('mike@example.com', 'Attachment example', 'Please see attached file.', {
    attachments: [file.getAs(MimeType.PDF)],
    name: 'Automatic Emailer Script'
});

參數

名稱類型說明
recipientString收件者地址
subjectString主旨行
bodyString電子郵件內文
optionsObject指定進階參數的 JavaScript 物件,如下所示

進階參數

名稱類型說明
attachmentsBlobSource[]要與電子郵件一併傳送的檔案陣列
bccString列出密件副本收件者的電子郵件地址清單 (以半形逗號分隔)
ccString要接收副本的電子郵件地址清單 (以半形逗號分隔)
fromString電子郵件傳送來源,必須是 getAliases() 傳回的其中一個值
htmlBodyString設定後,能夠轉譯 HTML 的裝置就會使用這個引數,而非必要的主體引數。如果電子郵件含有內嵌圖片,您可以在 HTML 內文中加入選用的 inlineImages 欄位
inlineImagesObject包含圖片索引鍵 (String) 和圖片資料 (BlobSource) 對應關係的 JavaScript 物件;這是假設使用的是 htmlBody 參數,且包含以 <img src="cid:imageKey" /> 格式參照這些圖片的參照
nameString電子郵件寄件者的名稱 (預設:使用者名稱)
replyToString做為預設回覆地址的電子郵件地址 (預設:使用者的電子郵件地址)

回攻

GmailDraft:新建立的 Gmail 草稿

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


createLabel(name)

為指定名稱建立新的使用者標籤。

// Creates the label @FOO and logs label: FOO
Logger.log("label: " + GmailApp.createLabel("FOO"));

參數

名稱類型說明
nameString新標籤的名稱

回攻

GmailLabel:新建立的標籤

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


deleteLabel(label)

刪除指定的標籤。

// Have to get the label by name first
var label = GmailApp.getUserLabelByName("FOO");
GmailApp.deleteLabel(label);

參數

名稱類型說明
labelGmailLabel要刪除的標籤

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


getAliases()

取得在 Gmail 中設為這個帳戶別名的電子郵件清單。

你可以使用「from」選用引數,從這些別名傳送郵件。

// Log the aliases for this Gmail account and send an email as the first one.
var me = Session.getActiveUser().getEmail();
var aliases = GmailApp.getAliases();
Logger.log(aliases);
if (aliases.length > 0) {
  GmailApp.sendEmail(me, 'From an alias', 'A message from an alias!', {'from': aliases[0]});
} else {
  GmailApp.sendEmail(me, 'No aliases found', 'You have no aliases.');
}

回攻

String[]:這個帳戶的別名陣列

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


getDraft(draftId)

根據 ID 擷取電子郵件草稿。

請在 Gmail 草稿中搭配 getId() 使用。

// Get the first draft message in your drafts folder
var draft = GmailApp.getDrafts()[0];
// Get its ID
var draftId = draft.getId();
// Now fetch the same draft using that ID.
var draftById = GmailApp.getDraft(draftId);
// Should always log true as they should be the same message
Logger.log(draft.getMessage().getSubject() == draftById.getMessage().getSubject());

參數

名稱類型說明
draftIdString要擷取的草稿 ID

回攻

GmailDraft:含有指定 ID 的草稿

擲回

Error,如果找不到具有指定 ID 的草稿

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getDraftMessages()

擷取所有草稿訊息。

// Logs the number of draft messages
var drafts = GmailApp.getDraftMessages();
Logger.log(drafts.length);

回攻

GmailMessage[]:一系列 Gmail 郵件草稿

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getDrafts()

取得所有 Gmail 郵件草稿。

var drafts = GmailApp.getDrafts();
for (var i = 0; i < drafts.length; i++) {
  Logger.log(drafts[i].getId());
}

回攻

GmailDraft[]:一系列 Gmail 郵件草稿

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getInboxThreads()

擷取所有收件匣會話串,無論標籤為何。

如果所有執行緒的大小過大,系統無法處理,這項呼叫就會失敗。如果執行緒大小不明 (可能非常龐大),請使用「paged」呼叫,並在每次呼叫中指定要擷取的執行緒範圍。

// Log the subject lines of your Inbox
var threads = GmailApp.getInboxThreads();
for (var i = 0; i < threads.length; i++) {
  Logger.log(threads[i].getFirstMessageSubject());
}

回攻

GmailThread[]:收件匣中一系列的 Gmail 會話串

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getInboxThreads(start, max)

擷取特定範圍的收件匣會話串,不受標籤影響。

// Log the subject lines of up to the first 50 emails in your Inbox
var threads = GmailApp.getInboxThreads(0, 50);
for (var i = 0; i < threads.length; i++) {
  Logger.log(threads[i].getFirstMessageSubject());
}

參數

名稱類型說明
startInteger第一個要擷取的執行緒索引
maxInteger要擷取的執行緒數量上限

回攻

GmailThread[]:收件匣中一系列的 Gmail 會話串

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getInboxUnreadCount()

取得收件匣中的未讀取會話串數量。

Logger.log("Messages unread in inbox: " + GmailApp.getInboxUnreadCount());

回攻

Integer:收件匣中有未讀郵件的討論串數量

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getMessageById(id)

依據 ID 取得訊息。

搭配 Gmail 郵件的 getId() 使用。

// Get the first message in the first thread of your inbox
var message = GmailApp.getInboxThreads(0, 1)[0].getMessages()[0];
// Get its ID
var messageId = message.getId();
// Now fetch the same message using that ID.
var messageById = GmailApp.getMessageById(messageId);
// Should always log true as they should be the same message
Logger.log(message.getSubject() == messageById.getSubject());

參數

名稱類型說明
idString要擷取的訊息 ID

回攻

GmailMessage:具有指定 ID 的訊息

擲回

Error,如果找不到具有指定 ID 的訊息

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


getMessagesForThread(thread)

擷取指定執行緒中的所有訊息。

// Log all the subject lines in the first thread of your inbox
var thread = GmailApp.getInboxThreads(0, 1)[0];
var messages = GmailApp.getMessagesForThread(thread);
for (var i = 0 ; i < messages.length; i++) {
  Logger.log("subject: " + messages[i].getSubject());
}

參數

名稱類型說明
threadGmailThread要擷取的訊息串

回攻

GmailMessage[] — 與這個討論串相對應的訊息陣列

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


getMessagesForThreads(threads)

擷取指定執行緒中的所有訊息。

// Log the subject lines of all messages in the first two threads of your inbox
var thread = GmailApp.getInboxThreads(0, 2);
var messages = GmailApp.getMessagesForThreads(thread);
for (var i = 0 ; i < messages.length; i++) {
  for (var j = 0; j < messages[i].length; j++) {
    Logger.log("subject: " + messages[i][j].getSubject());
  }
}

參數

名稱類型說明
threadsGmailThread[]要擷取的訊息串

回攻

GmailMessage[][]:訊息陣列,其中外部陣列中的每個項目都對應一個執行緒,且內部陣列包含該執行緒中的訊息

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


getPriorityInboxThreads()

擷取所有「優先收件匣」會話串,無論標籤為何。

如果所有執行緒的大小過大,系統無法處理,這項呼叫就會失敗。如果執行緒大小不明 (可能非常龐大),請使用「paged」呼叫,並在每次呼叫中指定要擷取的執行緒範圍。

Logger.log("# of messages in your Priority Inbox: " +
           GmailApp.getPriorityInboxThreads().length);

回攻

GmailThread[]:優先收件匣中的 Gmail 會話串陣列

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getPriorityInboxThreads(start, max)

擷取特定範圍的優先收件匣會話串,不受標籤影響。

// Will log some number 2 or less
Logger.log("# of messages in your Priority Inbox: " +
           GmailApp.getPriorityInboxThreads(0, 2).length);

參數

名稱類型說明
startInteger第一個要擷取的執行緒索引
maxInteger要擷取的執行緒數量上限

回攻

GmailThread[]:優先收件匣中的 Gmail 會話串陣列

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getPriorityInboxUnreadCount()

取得「優先收件匣」中的未讀取會話串數量。

Logger.log("Number of unread emails in your Priority Inbox : " +
           GmailApp.getPriorityInboxUnreadCount());

回攻

Integer:「優先收件匣」中含有未讀郵件的會話串數量

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getSpamThreads()

擷取所有垃圾郵件執行緒 (不限標籤)。

如果所有執行緒的大小過大,系統無法處理,這項呼叫就會失敗。如果執行緒大小不明 (可能非常龐大),請使用「paged」呼叫,並在每次呼叫中指定要擷取的執行緒範圍。

Logger.log("# of total spam threads: " + GmailApp.getSpamThreads().length);

回攻

GmailThread[]:垃圾郵件資料夾中的一系列 Gmail 會話串

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getSpamThreads(start, max)

擷取各種垃圾郵件會話串,不論標籤為何。

// Will log a number at most 5
Logger.log("# of total spam threads: " + GmailApp.getSpamThreads(0, 5).length);

參數

名稱類型說明
startInteger第一個要擷取的執行緒索引
maxInteger要擷取的執行緒數量上限

回攻

GmailThread[]:垃圾郵件資料夾中的一系列 Gmail 會話串

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getSpamUnreadCount()

取得屬於垃圾內容的未讀取執行緒數量。

// Unless you actually read stuff in your spam folder, this should be the same as
// the number of messages in your spam folder.
Logger.log("# unread threads that are spam: " + GmailApp.getSpamUnreadCount());

回攻

Integer:有未讀郵件的垃圾會話串數量

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getStarredThreads()

擷取所有已加星號的執行緒,不受標籤影響。

如果所有執行緒的大小過大,系統無法處理,這項呼叫就會失敗。如果執行緒大小不明 (可能非常龐大),請使用「paged」呼叫,並在每次呼叫中指定要擷取的執行緒範圍。

// Logs the number of starred threads
Logger.log("# Starred threads: " + GmailApp.getStarredThreads().length);

回攻

GmailThread[]:一組已加星號的 Gmail 會話串

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getStarredThreads(start, max)

擷取多個已加星號的執行緒,不受標籤影響。

// Logs the number of starred threads to a maximum of 5
Logger.log("# Starred threads: " + GmailApp.getStarredThreads(0, 5).length);

參數

名稱類型說明
startInteger第一個要擷取的執行緒索引
maxInteger要擷取的執行緒數量上限

回攻

GmailThread[]:一組已加星號的 Gmail 會話串

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getStarredUnreadCount()

取得已加星號的未讀取執行緒數量。

Logger.log("# unread and starred: " + GmailApp.getStarredUnreadCount());

回攻

Integer:含有未讀郵件的已加星號會話串數量

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getThreadById(id)

根據 ID 取得執行緒。

請在 Gmail 會話串中搭配 getId() 使用。

// Gets the first inbox thread.
const firstThread = GmailApp.getInboxThreads(0,1)[0];
// Gets the same thread by ID.
const threadById = GmailApp.getThreadById(firstThread.getId());
// Verifies that they are the same.
console.log(firstThread.getFirstMessageSubject() === threadById.getFirstMessageSubject());

參數

名稱類型說明
idString這是要擷取的執行緒 ID。

回攻

GmailThread:指定 ID 的執行緒,如果找不到,則為 null

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


getTrashThreads()

擷取所有標籤 (不論標籤為何)。

如果所有執行緒的大小過大,系統無法處理,這項呼叫就會失敗。如果執行緒大小不明 (可能非常龐大),請使用「paged」呼叫,並在每次呼叫中指定要擷取的執行緒範圍。

Logger.log("# of total trash threads: " + GmailApp.getTrashThreads().length);

回攻

GmailThread[]:垃圾桶中的一系列 Gmail 會話串

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getTrashThreads(start, max)

擷取各種標籤的垃圾桶執行緒。

// Will log a number at most 5
Logger.log("# of total trash threads: " + GmailApp.getTrashThreads(0, 5).length);

參數

名稱類型說明
startInteger第一個要擷取的執行緒索引
maxInteger要擷取的執行緒數量上限

回攻

GmailThread[]:垃圾桶中的一系列 Gmail 會話串

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getUserLabelByName(name)

擷取指定標籤名稱的標籤。

var labelObject = GmailApp.getUserLabelByName("myLabel");

參數

名稱類型說明
nameString要擷取的標籤名稱

回攻

GmailLabel:具有指定名稱的 Gmail 標籤

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

getUserLabels()

擷取使用者建立的標籤清單。

// Logs all of the names of your labels
var labels = GmailApp.getUserLabels();
for (var i = 0; i < labels.length; i++) {
  Logger.log("label: " + labels[i].getName());
}

回攻

GmailLabel[] — 使用者建立的標籤陣列

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

markMessageRead(message)

將這封郵件標示為已讀取並強制重新整理。

// Mark the first message in the first thread of your inbox as read
var message = GmailApp.getInboxThreads(0, 1)[0].getMessages()[0];
GmailApp.markMessageRead(message);

參數

名稱類型說明
messageGmailMessage要標示為已讀取的訊息

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markMessageUnread(message)

將這封郵件標示為未讀取並強制重新整理。

// Mark the first message in the first thread of your inbox as unread
var message = GmailApp.getInboxThreads(0, 1)[0].getMessages()[0];
GmailApp.markMessageUnread(message);

參數

名稱類型說明
messageGmailMessage要標示為未讀取的訊息

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markMessagesRead(messages)

將這些訊息標示為已讀取並強制重新整理。

// Mark first three messages in the first inbox thread as read.
// Assumes that the first inbox thread has 3 messages in it.
var threadMessages = GmailApp.getInboxThreads(0, 1)[0].getMessages();
var messages = [threadMessages[0], threadMessages[1], threadMessages[2]];
GmailApp.markMessagesRead(thread.getMessages());

參數

名稱類型說明
messagesGmailMessage[]要標示為已讀取的訊息陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markMessagesUnread(messages)

將這些訊息標示為未讀取,並強制重新整理這些訊息。

// Mark first three messages in the first inbox thread as unread.
// Assumes that the first inbox thread has 3 messages in it
var threadMessages = GmailApp.getInboxThreads(0, 1)[0].getMessages();
var messages = [threadMessages[0], threadMessages[1], threadMessages[2]];
GmailApp.markMessagesUnread(thread.getMessages());

參數

名稱類型說明
messagesGmailMessage[]要標示為未讀取的訊息陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markThreadImportant(thread)

將這個執行緒標示為重要,並強制重新整理執行緒。

// Marks first inbox thread as important
var thread = GmailApp.getInboxThreads(0, 1)[0];
GmailApp.markThreadImportant(thread);

參數

名稱類型說明
threadGmailThread要標示為重要的會話串

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markThreadRead(thread)

將這個執行緒標示為已讀取,並強制執行緒重新整理。

// Marks first inbox thread as read
var thread = GmailApp.getInboxThreads(0, 1)[0];
GmailApp.markThreadRead(thread);

參數

名稱類型說明
threadGmailThread要標示為已讀取的執行緒

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markThreadUnimportant(thread)

將這個執行緒標示為不重要,並強制重新整理執行緒。

// Marks first inbox thread as unimportant
var thread = GmailApp.getInboxThreads(0, 1)[0];
GmailApp.markThreadUnimportant(thread);

參數

名稱類型說明
threadGmailThread要標示為不重要的會話串

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markThreadUnread(thread)

將這個執行緒標示為未讀取,並強制重新整理執行緒。

// Marks first inbox thread as unread
var thread = GmailApp.getInboxThreads(0, 1)[0];
GmailApp.markThreadUnread(thread);

參數

名稱類型說明
threadGmailThread要標示為未讀取的會話串

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markThreadsImportant(threads)

將這些執行緒標示為重要,並強制執行緒重新整理。

// Marks first two threads in inbox as important
var threads = GmailApp.getInboxThreads(0, 2);
GmailApp.markThreadsImportant(threads);

參數

名稱類型說明
threadsGmailThread[]要標示為重要的執行緒陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markThreadsRead(threads)

將這些執行緒標示為已讀取,並強制執行緒重新整理。

// Marks first two threads in inbox as read
var threads = GmailApp.getInboxThreads(0, 2);
GmailApp.markThreadsRead(threads);

參數

名稱類型說明
threadsGmailThread[]要標示為已讀的執行緒陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markThreadsUnimportant(threads)

將這些執行緒標示為不重要,並強制執行緒重新整理。

// Marks first two threads in inbox as unimportant
var threads = GmailApp.getInboxThreads(0, 2);
GmailApp.markThreadsUnimportant(threads);

參數

名稱類型說明
threadsGmailThread[]要標示為不重要的執行緒陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


markThreadsUnread(threads)

將這些執行緒標示為未讀取,並強制執行緒重新整理。

// Marks first two threads in inbox as unread
var threads = GmailApp.getInboxThreads(0, 2);
GmailApp.markThreadsUnread(threads);

參數

名稱類型說明
threadsGmailThread[]要標示為未讀取的執行緒陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveMessageToTrash(message)

將郵件移至垃圾桶,並強制重新整理郵件。

// Move the first message in your inbox to trash
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var firstMessage = firstThread.getMessages()[0];
GmailApp.moveMessageToTrash(firstMessage);

參數

名稱類型說明
messageGmailMessage要刪除的訊息

回攻

GmailApp:Gmail 服務 (適合鏈結用途)

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveMessagesToTrash(messages)

將指定的郵件移至垃圾桶,並強制重新整理郵件。

// Move first two messages in your inbox to trash
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var messages = firstThread.getMessages();
var toDelete = [messages[0], messages[1]];
GmailApp.moveMessagesToTrash(toDelete);

參數

名稱類型說明
messagesGmailMessage[]要移至垃圾桶的郵件

回攻

GmailApp:Gmail 服務 (適合鏈結用途)

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveThreadToArchive(thread)

將這個執行緒移至封存,並強制重新整理執行緒。

// Archive the first thread in your inbox
var firstThread = GmailApp.getInboxThreads(0,1)[0];
GmailApp.moveThreadToArchive(firstThread);

參數

名稱類型說明
threadGmailThread要封存的會話串

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveThreadToInbox(thread)

將這個會話串移至收件匣,並強制重新整理會話串。

// Find a thread not already in your inbox
var thread = GmailApp.search("-in:inbox")[0]; // Get the first one
GmailApp.moveThreadToInbox(thread);

參數

名稱類型說明
threadGmailThread要移至收件匣的會話串

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveThreadToSpam(thread)

將這個執行緒移至垃圾內容並強制重新整理執行緒。

// Tag first thread in inbox as spam
var firstThread = GmailApp.getInboxThreads(0,1)[0];
GmailApp.moveThreadToSpam(firstThread);

參數

名稱類型說明
threadGmailThread要移至垃圾內容的會話串

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveThreadToTrash(thread)

將這個會話串移至垃圾桶,並強制重新整理執行緒。

// Move first thread in inbox to trash
var firstThread = GmailApp.getInboxThreads(0,1)[0];
GmailApp.moveThreadToTrash(firstThread);

參數

名稱類型說明
threadGmailThread要刪除的會話串

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveThreadsToArchive(threads)

將這些執行緒移至封存,並強制執行緒重新整理。

// Move first two threads in your inbox to the archive
var firstTwoThreads = GmailApp.getInboxThreads(0,2);
GmailApp.moveThreadsToArchive(firstTwoThreads);

參數

名稱類型說明
threadsGmailThread[]要封存的執行緒陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveThreadsToInbox(threads)

將這些會話串移至收件匣,並強制重新整理會話串。

// Find two threads not already in your inbox
var firstTwoThreads = GmailApp.search("-in:inbox", 0, 2);
GmailApp.moveThreadsToInbox(firstTwoThreads);

參數

名稱類型說明
threadsGmailThread[]要移至收件匣的會話串陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveThreadsToSpam(threads)

將這些執行緒移至垃圾內容並強制重新整理執行緒。

// Move first two threads in your inbox to spam
var firstTwoThreads = GmailApp.getInboxThreads(0,2);
GmailApp.moveThreadsToSpam(firstTwoThreads);

參數

名稱類型說明
threadsGmailThread[]要移至垃圾內容的執行緒陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


moveThreadsToTrash(threads)

將這些執行緒移至垃圾桶,並強制重新整理執行緒。

// Move first two threads in your inbox to trash
var firstTwoThreads = GmailApp.getInboxThreads(0,2);
GmailApp.moveThreadsToTrash(firstTwoThreads);

參數

名稱類型說明
threadsGmailThread[]即將移至垃圾桶的執行緒陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


refreshMessage(message)

從 Gmail 重新載入郵件及相關聯的狀態 (在標籤、已讀取狀態等發生變更時相當實用)。

var firstThread = GmailApp.getInboxThreads(0,1)[0];
var firstMessage = firstThread.getMessages()[0];
// ...Do something that may take a while here....
GmailApp.refreshMessage(firstMessage);
// ...Do more stuff with firstMessage...

參數

名稱類型說明
messageGmailMessage要重新整理的訊息

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


refreshMessages(messages)

從 Gmail 重新載入郵件和相關狀態 (在標籤、已讀取狀態等發生變更時相當實用)。

var firstThread = GmailApp.getInboxThreads(0,1)[0];
var coupleOfMessages = firstThread.getMessages().slice(0, 2);
// ...Do something that may take a while here....
GmailApp.refreshMessages(coupleOfMessages);
// ...Do more stuff with coupleOfMessages...

參數

名稱類型說明
messagesGmailMessage[]要重新整理的訊息

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


refreshThread(thread)

從 Gmail 重新載入執行緒和相關狀態 (在標籤、讀取狀態等發生變更時相當實用)。

var firstThread = GmailApp.getInboxThreads(0,1)[0];
// ...Do something that may take a while here....
GmailApp.refreshThread(firstThread);
// ... Do more stuff with the thread ...

參數

名稱類型說明
threadGmailThread要重新整理的會話串

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


refreshThreads(threads)

從 Gmail 重新載入執行緒和相關聯的狀態 (在標籤、讀取狀態等發生變更時相當實用)。

var threads = GmailApp.getInboxThreads(0, 3);
// ...Do something that may take a while here....
GmailApp.refreshThreads(threads);
// ... Do more stuff with threads ...

參數

名稱類型說明
threadsGmailThread[]要重新整理的執行緒

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


search(query)

根據指定的查詢搜尋 Gmail。

如果所有執行緒的大小過大,系統無法處理,這項呼叫就會失敗。如果執行緒大小不明 (可能非常龐大),請使用「paged」呼叫,並在每次呼叫中指定要擷取的執行緒範圍。

// Find starred messages with subject IMPORTANT
var threads = GmailApp.search('is:starred subject:"IMPORTANT"');

參數

名稱類型說明
queryString您輸入搜尋查詢的內容,就和您在 Gmail 中輸入的搜尋字詞一樣

回攻

GmailThread[]:與這項查詢相符的 Gmail 會話串陣列

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

search(query, start, max)

根據指定的查詢搜尋 Gmail。

// Find starred messages with subject IMPORTANT and return second batch of 10.
// Assumes there are at least 11 of them, otherwise this will return an empty array.
var threads = GmailApp.search('is:starred subject:"IMPORTANT"', 10, 10);

參數

名稱類型說明
queryString您輸入搜尋查詢的內容,就和您在 Gmail 中輸入的搜尋字詞一樣
startInteger起始執行緒的索引
maxInteger要傳回的執行緒數量上限

回攻

GmailThread[]:與這項查詢相符的 Gmail 會話串陣列

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

sendEmail(recipient, subject, body)

傳送電子郵件。電子郵件 (包括標頭) 的大小有配額限制

// The code below will send an email with the current date and time.
var now = new Date();
GmailApp.sendEmail("mike@example.com", "current time", "The time is: " + now.toString());

參數

名稱類型說明
recipientString以半形逗號分隔的電子郵件地址清單
subjectString電子郵件主旨 (最多 250 個字元)
bodyString電子郵件內文

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


sendEmail(recipient, subject, body, options)

傳送含有選用引數的電子郵件訊息。電子郵件可包含純文字或 HTML 內文。電子郵件 (包括標頭但不含附件) 都有配額限制

// Send an email with a file from Google Drive attached as a PDF.
var file = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz');
GmailApp.sendEmail('mike@example.com', 'Attachment example', 'Please see the attached file.', {
    attachments: [file.getAs(MimeType.PDF)],
    name: 'Automatic Emailer Script'
});

參數

名稱類型說明
recipientString收件者地址
subjectString主旨行 (最多 250 個字元)
bodyString電子郵件內文
optionsObject指定進階參數的 JavaScript 物件,如下所示

進階參數

名稱類型說明
attachmentsBlobSource[]要與電子郵件一併傳送的檔案陣列
bccString列出密件副本收件者的電子郵件地址清單 (以半形逗號分隔)
ccString要接收副本的電子郵件地址清單 (以半形逗號分隔)
fromString電子郵件傳送來源,必須是 getAliases() 傳回的其中一個值
htmlBodyString設定後,能夠轉譯 HTML 的裝置就會使用這個引數,而非必要的主體引數。如果電子郵件含有內嵌圖片,您可以在 HTML 內文中加入選用的 inlineImages 欄位
inlineImagesObject包含圖片索引鍵 (String) 和圖片資料 (BlobSource) 對應關係的 JavaScript 物件;這是假設使用的是 htmlBody 參數,且包含以 <img src="cid:imageKey" /> 格式參照這些圖片的參照
nameString電子郵件寄件者的名稱 (預設:使用者名稱)
noReplyBooleantrue如果要讓收件者不要回覆電子郵件,而是透過通用的無回覆電子郵件地址傳送電子郵件,因此這個選項僅適合 Google Workspace 帳戶使用,不適用於 Gmail 使用者
replyToString做為預設回覆地址的電子郵件地址 (預設:使用者的電子郵件地址)

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


setCurrentMessageAccessToken(accessToken)

設定目前的訊息存取權杖,讓指令碼存取目前的 GmailMessage 屬性。

只有使用 Gmail「目前郵件範圍」Google Workspace 外掛程式專案才需要使用此方法。

function handleAddonActionEvent(e) {
  var accessToken = e.messageMetadata.accessToken;
  var messageId = e.messageMetadata.messageId;
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var mailMessage = GmailApp.getMessageById(messageId);
  // Do something with mailMessage
}

參數

名稱類型說明
accessTokenString從 Gmail 外掛程式動作事件物件取得的臨時存取權杖。

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

starMessage(message)

為這封郵件加上星號,並強制郵件重新整理。

// Stars the first message in the first thread in your inbox
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var message = firstThread.getMessages()[0];
GmailApp.starMessage(message);

參數

名稱類型說明
messageGmailMessage為訊息加上星號

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


starMessages(messages)

為這類郵件加上星號,並強制郵件重新整理。

// Stars the first three messages in the first thread in your inbox
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var coupleOfMessages = firstThread.getMessages().slice(0, 3);
GmailApp.starMessages(coupleOfMessages);

參數

名稱類型說明
messagesGmailMessage[]要加上星號的訊息陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


unstarMessage(message)

移除這封郵件的星號,並強制重新整理郵件。

// Unstars the first message in the first thread in your inbox
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var message = firstThread.getMessages()[0];
GmailApp.unstarMessage(message);

參數

名稱類型說明
messageGmailMessage移除此訊息的星號

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱


unstarMessages(messages)

移除這些郵件的星號,並強制郵件重新整理。

// Unstars the first three messages in the first thread in your inbox
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var coupleOfMessages = firstThread.getMessages().slice(0, 3);
GmailApp.unstarMessages(coupleOfMessages);

參數

名稱類型說明
messagesGmailMessage[]移除星號的郵件陣列

回攻

GmailApp:Gmail 服務,適用於鏈結

授權

使用這個方法的指令碼需要透過下列一或多個範圍相關 REST API 中的適當範圍取得授權:

  • https://mail.google.com/

另請參閱

已淘汰的方法