Class GmailApp

Gmail 应用

提供对 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一个 JavaScript 对象,包含从图片键 (String) 到图片数据 (BlobSource) 的映射;此示例假设使用 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() 结合使用。

// Thread IDs can also be found in the location bar when you have a thread open in Gmail
// get first inbox thread
var firstThread = GmailApp.getInboxThreads(0,1)[0];
// Get the same thread by ID
var threadById = GmailApp.getThreadById(firstThread.getId());
// Verify they are the same
Logger.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一个 JavaScript 对象,包含从图片键 (String) 到图片数据 (BlobSource) 的映射;此示例假设使用 htmlBody 参数并包含对图片的引用(格式为 <img src="cid:imageKey" />
nameString电子邮件发件人的姓名(默认:用户姓名)
noReplyBoolean如果电子邮件应通过无回复常规电子邮件地址发送,以防止收件人回复电子邮件,请使用 true;此选项仅适用于 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/

另请参阅

已废弃的方法