Class GmailThread

Gmail会话

用户 Gmail 账号中的会话。

方法

方法返回类型简介
addLabel(label)GmailThread将此标签添加到线程中。
createDraftReply(body)GmailDraft使用“回复”地址创建草稿消息,以回复此会话中最后一条消息的发件人。
createDraftReply(body, options)GmailDraft使用回复地址和可选参数创建草稿消息,以回复此会话中最后一条消息的发件人。
createDraftReplyAll(body)GmailDraft使用此邮件的回复地址和所有收件人,创建回复此会话中最后一封邮件发件人的草稿邮件。
createDraftReplyAll(body, options)GmailDraft使用回复地址和所有收件人(可选参数)创建草稿消息,回复此会话中最后一条消息的发件人。
getFirstMessageSubject()String获取会话中第一条消息的主题。
getId()String获取此线程的 ID。
getLabels()GmailLabel[]返回此会话中用户创建的标签。
getLastMessageDate()Date获取此会话中最新消息的日期。
getMessageCount()Integer返回会话中的邮件数量。
getMessages()GmailMessage[]获取此会话串中的消息。
getPermalink()String获取此会话的永久链接。
hasStarredMessages()Boolean返回会话是否包含任何已加星标的消息。
isImportant()Boolean返回线程是否已标记为重要。
isInChats()Boolean返回会话是否被标记为聊天。
isInInbox()Boolean返回会话是否位于收件箱中。
isInPriorityInbox()Boolean如果此会话位于“重要收件箱”中,则返回 true;否则,返回 false。
isInSpam()Boolean返回会话串是否已被标记为垃圾内容。
isInTrash()Boolean返回线程是否在回收站中。
isUnread()Boolean返回会话是否有任何未读消息。
markImportant()GmailThread将此会话标记为重要。
markRead()GmailThread将此会话标记为已读。
markUnimportant()GmailThread将此会话标记为不重要。
markUnread()GmailThread将此会话标记为未读。
moveToArchive()GmailThread将此会话移至归档文件夹。
moveToInbox()GmailThread将此会话移至收件箱。
moveToSpam()GmailThread将此会话移至“垃圾内容”。
moveToTrash()GmailThread将此会话移至回收站。
refresh()GmailThread从 Gmail 重新加载此会话及相关状态(如果标签、已读状态等已更改,此操作非常有用)。
removeLabel(label)GmailThread从会话中移除此标签。
reply(body)GmailThread使用 replyTo 地址回复此会话中最后一封邮件的发件人。
reply(body, options)GmailThread使用 replyTo 地址(可选参数)回复此会话中最后一封邮件的发件人。
replyAll(body)GmailThread回复发件人(使用 replyTo 地址)以及此会话中最后一封邮件的所有收件人。
replyAll(body, options)GmailThread回复发件人(使用 replyTo 地址)以及此会话中最后一封邮件的所有收件人,并附带可选参数。

详细文档

addLabel(label)

将此标签添加到线程中。

// 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);

参数

名称类型说明
labelGmailLabel要应用于此会话的标签

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


createDraftReply(body)

使用“回复”地址创建草稿消息,以回复此会话中最后一条消息的发件人。电子邮件(包括标头)的大小超出了配额限制

// Create a draft reply to the message author with an acknowledgement.
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
firstThread.createDraftReply('Got your message');

参数

名称类型说明
bodyString电子邮件的正文

返回

GmailDraft - 新创建的草稿消息

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


createDraftReply(body, options)

使用回复地址和可选参数创建草稿消息,回复此会话中最后一条消息的发件人。

电子邮件可以同时包含纯文本正文和 HTML 正文。电子邮件(包括标头)的大小超出了配额限制

// 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',
});

参数

名称类型说明
bodyString电子邮件的正文
optionsObject用于指定高级参数的 JavaScript 对象,如下所列

高级参数

名称类型说明
attachmentsBlobSource[]要随电子邮件发送的文件数组
bccString以英文逗号分隔的密件抄送电子邮件地址列表
ccString以英文逗号分隔的抄送电子邮件地址列表
fromString电子邮件的发件人地址,必须是 GmailApp.getAliases() 返回的值之一
htmlBodyString如果已设置,则能够渲染 HTML 的设备将使用该字段,而不是必需的 body 参数;如果您为电子邮件内嵌了图片,则可以在 HTML 正文中添加可选的 inlineImages 字段
inlineImagesObject一个 JavaScript 对象,包含从图片键 (String) 到图片数据 (BlobSource) 的映射;这假定使用了 htmlBody 参数,并且包含采用 <img src="cid:imageKey" /> 格式的这些图片的引用
nameString电子邮件发件人的姓名(默认:用户的姓名)
replyToString要用作默认回复地址的电子邮件地址(默认:用户的电子邮件地址)
subjectString电子邮件的新主题行(最多 250 个字符)

返回

GmailDraft - 新创建的草稿消息

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


createDraftReplyAll(body)

使用此邮件的回复地址和所有收件人,创建一条回复此会话中最后一封邮件发件人的草稿邮件。电子邮件(包括标头)的大小受配额限制

// 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');

参数

名称类型说明
bodyString电子邮件的正文

返回

GmailDraft - 新创建的草稿消息

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


createDraftReplyAll(body, options)

使用回复地址和所有收件人(可选参数)创建草稿消息,回复此会话中最后一条消息的发件人。

电子邮件可以同时包含纯文本正文和 HTML 正文。电子邮件(包括标头)的大小超出了配额限制

// 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',
});

参数

名称类型说明
bodyString电子邮件的正文
optionsObject用于指定高级参数的 JavaScript 对象,如下所列

高级参数

名称类型说明
attachmentsBlobSource[]要随电子邮件发送的文件数组
bccString以英文逗号分隔的密件抄送电子邮件地址列表
ccString以英文逗号分隔的抄送电子邮件地址列表
fromString电子邮件的发件人地址,必须是 GmailApp.getAliases() 返回的值之一
htmlBodyString如果已设置,则能够渲染 HTML 的设备将使用该字段,而不是必需的 body 参数;如果您为电子邮件内嵌了图片,则可以在 HTML 正文中添加可选的 inlineImages 字段
inlineImagesObject一个 JavaScript 对象,包含从图片键 (String) 到图片数据 (BlobSource) 的映射;这假定使用了 htmlBody 参数,并且包含采用 <img src="cid:imageKey" /> 格式的这些图片的引用
nameString电子邮件发件人的姓名(默认:用户的姓名)
replyToString要用作默认回复地址的电子邮件地址(默认:用户的电子邮件地址)
subjectString电子邮件的新主题行。大小上限为 250 个字符。

返回

GmailDraft - 新创建的草稿消息

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


getFirstMessageSubject()

获取会话中第一条消息的主题。

// 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());

返回

String - 会话中第一条消息的主题

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


getId()

获取此线程的 ID。会话的 ID 因其包含的消息而异;如需获取会话中特定消息的一致 ID,请改为调用 getMessages()[0].getId()

// 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(),
);  // True

返回

String - 此会话的 ID


getLabels()

返回此会话中用户创建的标签。

// 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());
}

返回

GmailLabel[] - 此会话的标签数组

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

getLastMessageDate()

获取此会话中最新消息的日期。

// 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());

返回

Date - 会话中最新消息的日期

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


getMessageCount()

返回会话中的消息数量。

// Log the number of messages in the thread
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(firstThread.getMessageCount());

返回

Integer - 会话中的消息数量

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


getMessages()

获取此会话串中的消息。

// 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());
}

返回

GmailMessage[] - 此会话中的 Gmail 邮件的数组

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


获取此会话的永久链接。

请注意,此功能仅适用于传统版 Gmail 界面,而不适用于收件箱。

// Logs the permalink for the first thread in the inbox
const thread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(thread.getPermalink());

返回

String - 此会话串的固定链接


hasStarredMessages()

返回会话是否包含任何已加星标的消息。

// Log if this thread has starred messages
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(`has starred : ${firstThread.hasStarredMessages()}`);

返回

Boolean - 如果会话包含任何已加星标的消息,则为 true

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

isImportant()

返回线程是否已标记为重要。

// Log if this thread is marked as important
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(`Important? : ${firstThread.isImportant()}`);

返回

Boolean - 会话是否已标记为重要。

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

isInChats()

返回会话是否被标记为聊天。

// Log if this thread is a chat
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(`is in chats? : ${firstThread.isInChats()}`);

返回

Boolean - 如果会话被标记为对话,则为 true

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

isInInbox()

返回会话是否位于收件箱中。

// Log if this thread is in the inbox
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(`is in the inbox? : ${firstThread.isInInbox()}`);

返回

Boolean - 如果会话位于收件箱中,则为 true

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

isInPriorityInbox()

如果此会话位于“重要收件箱”中,则返回 true;否则,返回 false。

// Log if this thread is in the priority inbox
const firstThread = GmailApp.getPriorityInboxThreads(0, 1)[0];
Logger.log(`is in priority inbox? ${firstThread.isInPriorityInbox()}`);

返回

Boolean - 如果会话位于“优先收件箱”中,则为 true

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

isInSpam()

返回会话串是否已被标记为垃圾内容。

// Log if this thread is in the spam folder
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(`Spam? ${firstThread.isInSpam()}`);

返回

Boolean - 此会话串是否已被标记为垃圾内容。

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

isInTrash()

返回会话是否位于回收站中。

// Log if this thread is in the trash
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(`Trashed? ${firstThread.isInTrash()}`);

返回

Boolean - 如果会话位于回收站中,则为 true

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

isUnread()

返回会话是否有任何未读消息。

// Log if this thread is unread
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
Logger.log(`Unread? ${firstThread.isUnread()}`);

返回

Boolean - 如果有未读消息,则为 true

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

markImportant()

将此会话标记为重要。

// Mark first inbox thread as important
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
firstThread.markImportant();

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


markRead()

将此会话标记为已读。

// Mark first inbox thread as read
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
firstThread.markRead();

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


markUnimportant()

将此会话标记为不重要。

// Mark first inbox thread as unimportant
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
firstThread.markUnimportant();

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


markUnread()

将此会话标记为未读。

// Mark first inbox thread as unread
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
firstThread.markUnread();

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


moveToArchive()

将此会话移至归档。

// Archive first inbox thread
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
firstThread.moveToArchive();

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

moveToInbox()

将此会话移至收件箱。

// Move first non-inbox thread to inbox
const firstThread = GmailApp.search('-in:inbox')[0];
firstThread.moveToInbox();

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

moveToSpam()

将此会话移至“垃圾内容”。

// Move first inbox thread to spam
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
firstThread.moveToSpam();

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

moveToTrash()

将此会话移至回收站。

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

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

refresh()

从 Gmail 重新加载此会话及相关状态(如果标签、已读状态等已更改,此操作非常有用)。

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 ...

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

removeLabel(label)

从会话中移除此标签。

const myLabel = GmailApp.getUserLabelByName('<your label>');
const threads = myLabel.getThreads();
for (const thread of threads) {
  thread.removeLabel(myLabel);
}

参数

名称类型说明
labelGmailLabel要从此会话中移除的标签

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


reply(body)

使用 replyTo 地址回复此会话中最后一封邮件的发件人。

请注意,电子邮件的总大小(包括所有标头)不得超过 20KB。

// Respond to author of last email in thread with acknowledgment
const firstThread = GmailApp.getInboxThreads(0, 1)[0];
firstThread.reply('Got your message');

参数

名称类型说明
bodyString电子邮件的正文

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


reply(body, options)

使用 replyTo 地址(可选参数)回复此会话中最后一条消息的发件人。电子邮件可以同时包含纯文本正文和 HTML 正文。请注意,电子邮件的总大小(包括所有标头,但不包括附件)不得超过 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,
});

参数

名称类型说明
bodyString电子邮件的正文
optionsObject用于指定高级参数的 JavaScript 对象,如下所列

高级参数

名称类型说明
ccString以英文逗号分隔的抄送电子邮件地址列表
bccString以英文逗号分隔的密送电子邮件地址列表
htmlBodyString如果已设置,则能够渲染 HTML 的设备将使用该字段,而不是必需的 body 参数;如果您为电子邮件内嵌了图片,则可以在 HTML 正文中添加可选的 inlineImages 字段
nameString电子邮件发件人的姓名(默认:用户的姓名)
fromString电子邮件的发件人地址,必须是 GmailApp.getAliases() 返回的值之一
replyToString要用作默认回复地址的电子邮件地址(默认:用户的电子邮件地址)
noReplyBooleantrue(如果应使用通用的无回复电子邮件地址发送电子邮件,以阻止收件人回复电子邮件;此选项仅适用于 Google Workspace 账号,不适用于 Gmail 用户)
attachmentsBlobSource[]要随电子邮件发送的文件数组
inlineImagesObject一个 JavaScript 对象,包含从图片键 (String) 到图片数据 (BlobSource) 的映射;这假定使用了 htmlBody 参数,并且包含采用 <img src="cid:imageKey" /> 格式的这些图片的引用

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


replyAll(body)

回复发件人(使用 replyTo 地址)以及此会话中最后一封邮件的所有收件人。

请注意,电子邮件的总大小(包括所有标头)不得超过 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');

参数

名称类型说明
bodyString电子邮件的正文

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅


replyAll(body, options)

回复发件人(使用 replyTo 地址)以及此会话中最后一封邮件的所有收件人,并附带可选参数。电子邮件可以同时包含纯文本和 HTML 正文。请注意,电子邮件的总大小(包括所有标头,但不包括附件)不得超过 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,
});

参数

名称类型说明
bodyString电子邮件的正文
optionsObject用于指定高级参数的 JavaScript 对象,如下所列

高级参数

名称类型说明
ccString以英文逗号分隔的抄送电子邮件地址列表
bccString以英文逗号分隔的密送电子邮件地址列表
htmlBodyString如果已设置,则能够渲染 HTML 的设备将使用该字段,而不是必需的 body 参数;如果您为电子邮件内嵌了图片,则可以在 HTML 正文中添加可选的 inlineImages 字段
nameString电子邮件发件人的姓名(默认:用户的姓名)
fromString电子邮件的发件人地址,必须是 GmailApp.getAliases() 返回的值之一
replyToString要用作默认回复地址的电子邮件地址(默认:用户的电子邮件地址)
noReplyBooleantrue(如果电子邮件应通过通用的无回复电子邮件地址发送,以阻止收件人回复电子邮件;此选项仅适用于 G Suite 账号,不适用于 Gmail 用户)
attachmentsBlobSource[]要随电子邮件发送的文件数组
inlineImagesObject一个 JavaScript 对象,包含从图片键 (String) 到图片数据 (BlobSource) 的映射;这假定使用了 htmlBody 参数,并且包含采用 <img src="cid:imageKey" /> 格式的这些图片的引用

返回

GmailThread - this 线程,适用于链式调用

授权

使用此方法的脚本需要具有以下一个或多个作用域相关 REST API 中的适当作用域的授权:

  • https://mail.google.com/

另请参阅