Stay organized with collections Save and categorize content based on your preferences.
GmailThreadA thread in a user's Gmail account.
Methods Method Return type Brief descriptionaddLabel(label)
GmailThread
Adds this label to the thread. createDraftReply(body)
GmailDraft
Creates a draft message replying to the sender of the last message in this thread using the reply-to address. createDraftReply(body, options)
GmailDraft
Creates a draft message replying to the sender of the last message in this thread using the reply-to address, with optional arguments. createDraftReplyAll(body)
GmailDraft
Creates a draft message replying to the sender of the last message in this thread, using the reply-to address and all recipients of this message. createDraftReplyAll(body, options)
GmailDraft
Creates a draft message replying to the sender of the last message in this thread, using the reply-to address and all recipients, with optional arguments. getFirstMessageSubject()
String
Gets the subject of the first message in the thread. getId()
String
Gets the ID of this thread. getLabels()
GmailLabel[]
Returns the user-created labels on this thread. getLastMessageDate()
Date
Gets the date of this thread's most recent message. getMessageCount()
Integer
Returns the number of messages in the thread. getMessages()
GmailMessage[]
Gets the messages in this thread. getPermalink()
String
Gets a permalink for this thread. hasStarredMessages()
Boolean
Returns whether the thread has any starred messages. isImportant()
Boolean
Returns whether the thread is marked as important. isInChats()
Boolean
Returns whether the thread is labeled a chat. isInInbox()
Boolean
Returns whether the thread is in the inbox. isInPriorityInbox()
Boolean
Returns true if this thread is in the priority inbox; returns false otherwise. isInSpam()
Boolean
Returns whether the thread is marked as spam. isInTrash()
Boolean
Returns whether the thread is in the trash. isUnread()
Boolean
Returns whether the thread has any unread messages. markImportant()
GmailThread
Marks this thread as important. markRead()
GmailThread
Marks this thread as read. markUnimportant()
GmailThread
Marks this thread as unimportant. markUnread()
GmailThread
Marks this thread as unread. moveToArchive()
GmailThread
Moves this thread to the archive. moveToInbox()
GmailThread
Moves this thread to the inbox. moveToSpam()
GmailThread
Moves this thread to spam. moveToTrash()
GmailThread
Moves this thread to the trash. refresh()
GmailThread
Reloads this thread, and associated state from Gmail (useful in case the labels, read state, etc., have changed). removeLabel(label)
GmailThread
Removes this label from the thread. reply(body)
GmailThread
Reply to the sender of the last message on this thread using the replyTo address. reply(body, options)
GmailThread
Reply to the sender of the last message on this thread using the replyTo address, with optional arguments. replyAll(body)
GmailThread
Reply to the sender (using the replyTo address), and all recipients of the last message on this thread. replyAll(body, options)
GmailThread
Reply to the sender (using the replyTo
address), and all recipients of the last message on this thread, with optional arguments. Detailed documentation addLabel(label)
Adds this label to the thread.
// Add label MyLabel to the first thread in the inbox const label = GmailApp.getUserLabelByName('MyLabel'); const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.addLabel(label);Parameters Name Type Description
label
GmailLabel
the label to apply to this thread Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
createDraftReply(body)
Creates a draft message replying to the sender of the last message in this thread using the reply-to address. The size of the email (including headers) is quota limited.
// Create a draft reply to the message author with an acknowledgement. const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.createDraftReply('Got your message');Parameters Name Type Description
body
String
the body of the email Return
GmailDraft
— the newly created draft message
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
reply(body)
createDraftReply(body, options)
createDraftReplyAll(body)
createDraftReplyAll(body, options)
createDraftReply(body, options)
Creates a draft message replying to the sender of the last message in this thread using the reply-to address, with optional arguments.
The email can contain both plain text and an HTML body. The size of the email (including headers) is quota limited.
// Create a draft response with an HTML text body. const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.createDraftReply('incapable of HTML', { htmlBody: '<b>some HTML body text</b>', cc: 'another@example.com', });Parameters Name Type Description
body
String
the body of the email options
Object
a JavaScript object that specifies advanced parameters, as listed below Advanced parameters Name Type Description attachments
BlobSource[]
an array of files to send with the email bcc
String
a comma-separated list of email addresses to BCC cc
String
a comma-separated list of email addresses to CC from
String
the address that the email should be sent from, which must be one of the values returned by GmailApp.getAliases()
htmlBody
String
if set, devices capable of rendering HTML will use it instead of the required body argument; you can add an optional inlineImages
field in HTML body if you have inlined images for your email inlineImages
Object
a JavaScript object containing a mapping from image key (String
) to image data (BlobSource
); this assumes that the htmlBody
parameter is used and contains references to these images in the format <img src="cid:imageKey" />
name
String
the name of the sender of the email (default: the user's name) replyTo
String
an email address to use as the default reply-to address (default: the user's email address) subject
String
a new subject line for the email (250 characters maximum) Return
GmailDraft
— the newly created draft message
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
reply(body, options)
createDraftReply(body)
createDraftReplyAll(body)
createDraftReplyAll(body, options)
createDraftReplyAll(body)
Creates a draft message replying to the sender of the last message in this thread, using the reply-to address and all recipients of this message. The size of the email (including headers) is quota limited.
// Create a draft reply to all recipients (except those bcc'd) of the last email // in this thread. const firstThread = GmailApp.getInboxThreads(0, 1)[0]; const message = firstThread.getMessages()[0]; message.createDraftReplyAll('Got your message');Parameters Name Type Description
body
String
the body of the email Return
GmailDraft
— the newly created draft message
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
replyAll(body)
createDraftReply(body)
createDraftReply(body, options)
createDraftReplyAll(body, options)
createDraftReplyAll(body, options)
Creates a draft message replying to the sender of the last message in this thread, using the reply-to address and all recipients, with optional arguments.
The email can contain both plain text and an HTML body. The size of the email (including headers) is quota limited.
// Create a draft reply, using an HTML text body, to all recipients (except // those bcc'd) of the last email of in this thread. const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.createDraftReplyAll('incapable of HTML', { htmlBody: '<b>some HTML body text</b>', cc: 'another@example.com', });Parameters Name Type Description
body
String
the body of the email options
Object
a JavaScript object that specifies advanced parameters, as listed below Advanced parameters Name Type Description attachments
BlobSource[]
an array of files to send with the email bcc
String
a comma-separated list of email addresses to BCC cc
String
a comma-separated list of email addresses to CC from
String
the address that the email should be sent from, which must be one of the values returned by GmailApp.getAliases()
htmlBody
String
if set, devices capable of rendering HTML will use it instead of the required body argument; you can add an optional inlineImages
field in HTML body if you have inlined images for your email inlineImages
Object
a JavaScript object containing a mapping from image key (String
) to image data (BlobSource
); this assumes that the htmlBody
parameter is used and contains references to these images in the format <img src="cid:imageKey" />
name
String
the name of the sender of the email (default: the user's name) replyTo
String
an email address to use as the default reply-to address (default: the user's email address) subject
String
a new subject line for the email. Max size is 250 chars. Return
GmailDraft
— the newly created draft message
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
replyAll(body, options)
createDraftReply(body)
createDraftReply(body, options)
createDraftReplyAll(body)
getFirstMessageSubject()
Gets the subject of the first message in the thread.
// Log the subject of the first message in the first thread in the inbox const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(firstThread.getFirstMessageSubject());Return
String
— the subject of the first message in the thread
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
getId()
Gets the ID of this thread. The ID of a thread varies based on the messages it contains; for a consistent ID for a particular message in the thread, call getMessages()[0].getId()
instead.
// Log the subject of the first message in the first thread in the inbox. const firstThread = GmailApp.getInboxThreads(0, 1)[0]; const id = firstThread.getId(); // Get same thread by its ID. const thread = GmailApp.getThreadById(id); Logger.log( thread.getFirstMessageSubject() === firstThread.getFirstMessageSubject(), ); // TrueReturn
String
— the ID of this thread
getLabels()
Returns the user-created labels on this thread.
// Log the names of the labels attached to the first thread in the inbox const firstThread = GmailApp.getInboxThreads(0, 1)[0]; const labels = firstThread.getLabels(); for (let i = 0; i < labels.length; i++) { Logger.log(labels[i].getName()); }Return
GmailLabel[]
— an array of labels for this thread
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
getLastMessageDate()
Gets the date of this thread's most recent message.
// Log the date of the most recent message on the first thread in the inbox const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(firstThread.getLastMessageDate());Return
Date
— the date of the most recent message in the thread
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
getMessageCount()
Returns the number of messages in the thread.
// Log the number of messages in the thread const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(firstThread.getMessageCount());Return
Integer
— the number of messages in the thread
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
getMessages()
Gets the messages in this thread.
// Log the subjects of the messages in the thread const firstThread = GmailApp.getInboxThreads(0, 1)[0]; const messages = firstThread.getMessages(); for (let i = 0; i < messages.length; i++) { Logger.log(messages[i].getSubject()); }Return
GmailMessage[]
— an array of Gmail messages in this thread
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
getPermalink()
Gets a permalink for this thread.
Note that this only works with the classic Gmail interface, not Inbox.
// Logs the permalink for the first thread in the inbox const thread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(thread.getPermalink());Return
String
— the permalink for this thread
hasStarredMessages()
Returns whether the thread has any starred messages.
// Log if this thread has starred messages const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(`has starred : ${firstThread.hasStarredMessages()}`);Return
Boolean
— true if the thread has any starred messages
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
isImportant()
Returns whether the thread is marked as important.
// Log if this thread is marked as important const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(`Important? : ${firstThread.isImportant()}`);Return
Boolean
— Whether the thread is marked as important.
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
isInChats()
Returns whether the thread is labeled a chat.
// Log if this thread is a chat const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(`is in chats? : ${firstThread.isInChats()}`);Return
Boolean
— true if the thread is labeled a chat
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
isInInbox()
Returns whether the thread is in the inbox.
// Log if this thread is in the inbox const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(`is in the inbox? : ${firstThread.isInInbox()}`);Return
Boolean
— true if the thread is in the inbox
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
isInPriorityInbox()
Returns true if this thread is in the priority inbox; returns false otherwise.
// Log if this thread is in the priority inbox const firstThread = GmailApp.getPriorityInboxThreads(0, 1)[0]; Logger.log(`is in priority inbox? ${firstThread.isInPriorityInbox()}`);Return
Boolean
— true if the thread is in the priority inbox
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
isInSpam()
Returns whether the thread is marked as spam.
// Log if this thread is in the spam folder const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(`Spam? ${firstThread.isInSpam()}`);Return
Boolean
— Whether this thread is marked as spam.
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
isInTrash()
Returns whether the thread is in the trash.
// Log if this thread is in the trash const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(`Trashed? ${firstThread.isInTrash()}`);Return
Boolean
— true if the thread is in the trash
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
isUnread()
Returns whether the thread has any unread messages.
// Log if this thread is unread const firstThread = GmailApp.getInboxThreads(0, 1)[0]; Logger.log(`Unread? ${firstThread.isUnread()}`);Return
Boolean
— true if there are unread messages
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
markImportant()
Marks this thread as important.
// Mark first inbox thread as important const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.markImportant();Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
markRead()
Marks this thread as read.
// Mark first inbox thread as read const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.markRead();Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
markUnimportant()
Marks this thread as unimportant.
// Mark first inbox thread as unimportant const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.markUnimportant();Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
markUnread()
Marks this thread as unread.
// Mark first inbox thread as unread const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.markUnread();Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
moveToArchive()
Moves this thread to the archive.
// Archive first inbox thread const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.moveToArchive();Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
moveToInbox()
Moves this thread to the inbox.
// Move first non-inbox thread to inbox const firstThread = GmailApp.search('-in:inbox')[0]; firstThread.moveToInbox();Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
moveToSpam()
Moves this thread to spam.
// Move first inbox thread to spam const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.moveToSpam();Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
moveToTrash()
Moves this thread to the trash.
// Move first inbox thread to trash const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.moveToTrash();Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
refresh()
Reloads this thread, and associated state from Gmail (useful in case the labels, read state, etc., have changed).
const firstThread = GmailApp.getInboxThreads(0, 1)[0]; // ...Do something that may take a while here.... firstThread.refresh(); // Make sure it's up-to-date // ...Do more stuff with firstThread ...Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
removeLabel(label)
Removes this label from the thread.
const myLabel = GmailApp.getUserLabelByName('<your label>'); const threads = myLabel.getThreads(); for (const thread of threads) { thread.removeLabel(myLabel); }Parameters Name Type Description
label
GmailLabel
the label to remove from this thread Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
reply(body)
Reply to the sender of the last message on this thread using the replyTo address.
Note that the total size of the email (including all headers) may not exceed 20KB.
// Respond to author of last email in thread with acknowledgment const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.reply('Got your message');Parameters Name Type Description
body
String
the body of the email Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
reply(body, options)
Reply to the sender of the last message on this thread using the replyTo address, with optional arguments. The email can contain both plain text, and also an HTML body. Note that the total size of the email (including all headers, but excluding attachments) may not exceed 20KB.
// Respond with HTML body text. const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.reply('incapable of HTML', { htmlBody: 'some HTML body text', noReply: true, });Parameters Name Type Description
body
String
the body of the email options
Object
a JavaScript object that specifies advanced parameters, as listed below Advanced parameters Name Type Description cc
String
a comma separated list of email addresses to CC bcc
String
a comma separated list of email addresses to BCC htmlBody
String
if set, devices capable of rendering HTML will use it instead of the required body argument; you can add an optional inlineImages
field in HTML body if you have inlined images for your email name
String
the name of the sender of the email (default: the user's name) from
String
the address that the email should be sent from, which must be one of the values returned by GmailApp.getAliases()
replyTo
String
an email address to use as the default reply-to address (default: the user's email address) noReply
Boolean
true
if the email should be sent from a generic no-reply email address to discourage recipients from responding to emails; this option is only possible for Google Workspace accounts, not Gmail users attachments
BlobSource[]
an array of files to send with the email inlineImages
Object
a JavaScript object containing a mapping from image key (String
) to image data (BlobSource
); this assumes that the htmlBody
parameter is used and contains references to these images in the format <img src="cid:imageKey" />
Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
replyAll(body)
Reply to the sender (using the replyTo address), and all recipients of the last message on this thread.
Note that the total size of the email (including all headers) may not exceed 20KB.
// Respond to all with acknowledgment to the first thread in the inbox const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.replyAll('Got your message');Parameters Name Type Description
body
String
the body of the email Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
replyAll(body, options)
Reply to the sender (using the replyTo
address), and all recipients of the last message on this thread, with optional arguments. The email can contain both plain text, and also an HTML body. Note that the total size of the email (including all headers, but excluding attachments) may not exceed 20KB.
// Respond with HTML body text. const firstThread = GmailApp.getInboxThreads(0, 1)[0]; firstThread.replyAll('incapable of HTML', { htmlBody: 'some HTML body text', noReply: true, });Parameters Name Type Description
body
String
the body of the email options
Object
a JavaScript object that specifies advanced parameters, as listed below Advanced parameters Name Type Description cc
String
a comma separated list of email addresses to CC bcc
String
a comma separated list of email addresses to BCC htmlBody
String
if set, devices capable of rendering HTML will use it instead of the required body argument; you can add an optional inlineImages
field in HTML body if you have inlined images for your email name
String
the name of the sender of the email (default: the user's name) from
String
the address that the email should be sent from, which must be one of the values returned by GmailApp.getAliases()
replyTo
String
an email address to use as the default reply-to address (default: the user's email address) noReply
Boolean
true
if the email should be sent from a generic no-reply email address to discourage recipients from responding to emails; this option is only possible for G Suite accounts, not Gmail users attachments
BlobSource[]
an array of files to send with the email inlineImages
Object
a JavaScript object containing a mapping from image key (String
) to image data (BlobSource
); this assumes that the htmlBody
parameter is used and contains references to these images in the format <img src="cid:imageKey" />
Return
GmailThread
— this thread, useful for chaining
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
https://mail.google.com/
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-12-03 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-03 UTC."],[[["GmailThread provides methods for managing email threads, including retrieving information, labeling, and changing the thread's state (read/unread, important/unimportant)."],["You can draft and send replies to the sender or all recipients of the last message in a thread, with options for customization like CC, BCC, and HTML body."],["Authorization with the `https://mail.google.com/` scope is necessary for most GmailThread methods to access and modify Gmail data."],["`reply()` and `replyAll()` methods allow direct replies to the sender or all recipients of the last message in a thread, respectively, with optional customization."]]],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4