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 - 新创建的 GmailDraft

授权

使用此方法的脚本需要获得以下一个或多个范围相关 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 的设备将使用它,而不是必需的 body 参数;如果您有用于电子邮件的内嵌图片,则可以在 HTML 正文中添加可选的 inlineImages 字段
inlineImagesObject一个 JavaScript 对象,其中包含从图片键 (String) 到图片数据 (BlobSource) 的映射;这假定使用 htmlBody 参数,并包含对 <img src="cid:imageKey" /> 格式这些图片的引用
nameString电子邮件发件人的姓名(默认值:用户的姓名)
replyToString用作默认回复地址的电子邮件地址(默认:用户的电子邮件地址)

弃踢回攻

GmailDraft - 新创建的 GmailDraft

授权

使用此方法的脚本需要获得以下一个或多个范围相关 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()

检索所有收件箱会话(不考虑标签)。

当所有线程的大小对系统无法处理时,此调用将失败。如果线程大小未知,并且可能非常大,请使用“分页”调用,并指定要在每次调用中检索的线程范围。

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

检索优先收件箱的所有会话(不考虑标签)。

当所有线程的大小对系统无法处理时,此调用将失败。如果线程大小未知,并且可能非常大,请使用“分页”调用,并指定要在每次调用中检索的线程范围。

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

检索所有垃圾会话(不考虑标签)。

当所有线程的大小对系统无法处理时,此调用将失败。如果线程大小未知,并且可能非常大,请使用“分页”调用,并指定要在每次调用中检索的线程范围。

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

检索所有已加星标的线程,而不考虑标签。

当所有线程的大小对系统无法处理时,此调用将失败。如果线程大小未知,并且可能非常大,请使用“分页”调用,并指定要在每次调用中检索的线程范围。

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

检索所有回收站线程(不考虑标签)。

当所有线程的大小对系统无法处理时,此调用将失败。如果线程大小未知,并且可能非常大,请使用“分页”调用,并指定要在每次调用中检索的线程范围。

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。

当所有线程的大小对系统无法处理时,此调用将失败。如果线程大小未知,并且可能非常大,请使用“分页”调用,并指定要在每次调用中检索的线程范围。

// 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 的设备将使用它,而不是必需的 body 参数;如果您有用于电子邮件的内嵌图片,则可以在 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/

另请参阅

已废弃的方法