Class GmailAttachment

Gmail附件

来自 Gmail 的附件。这是一个常规的 Blob,但它有一个额外的 getSize() 方法,该方法比调用 getBytes().length 更快,并且不会计入 Gmail 读取配额。

// Logs information about any attachments in the first 100 inbox threads.
const threads = GmailApp.getInboxThreads(0, 100);
const msgs = GmailApp.getMessagesForThreads(threads);
for (let i = 0; i < msgs.length; i++) {
  for (let j = 0; j < msgs[i].length; j++) {
    const attachments = msgs[i][j].getAttachments();
    for (let k = 0; k < attachments.length; k++) {
      Logger.log(
          'Message "%s" contains the attachment "%s" (%s bytes)',
          msgs[i][j].getSubject(),
          attachments[k].getName(),
          attachments[k].getSize(),
      );
    }
  }
}

方法

方法返回类型简介
copyBlob()Blob返回相应 blob 的副本。
getAs(contentType)Blob以转换为指定内容类型的 blob 形式返回此对象内的数据。
getBytes()Byte[]获取存储在此 blob 中的数据。
getContentType()String|null获取相应 blob 中字节的内容类型。
getDataAsString()String以 UTF-8 编码获取相应 blob 的数据(以字符串形式)。
getDataAsString(charset)String以指定编码获取相应 blob 的数据(以字符串形式)。
getHash()String获取相应附件的 SHA1 内容哈希。
getName()String|null获取相应 blob 的名称。
getSize()Integer获取此附件的大小。
isGoogleType()Boolean返回相应 Blob 是否为 Google Workspace 文件(Google 表格、Google 文档等)。
setBytes(data)Blob设置存储在此 blob 中的数据。
setContentType(contentType)Blob设置相应 blob 中字节的内容类型。
setContentTypeFromExtension()Blob根据文件扩展名设置相应 blob 中字节的内容类型。
setDataFromString(string)Blob根据采用 UTF-8 编码的字符串设置相应 blob 的数据。
setDataFromString(string, charset)Blob根据具有指定编码的字符串设置相应 blob 的数据。
setName(name)Blob设置相应 blob 的名称。

详细文档

copyBlob()

返回相应 blob 的副本。

返回

Blob - 新文案。


getAs(contentType)

以转换为指定内容类型的 blob 形式返回此对象内的数据。此方法会向文件名添加适当的扩展名,例如“myfile.pdf”。不过,它会假设文件名中最后一个句点(如果有)后面的部分是应替换的现有扩展名。因此,“ShoppingList.12.25.2014”会变为“ShoppingList.12.25.pdf”。

如需查看转化方面的每日配额,请参阅 Google 服务的配额。新创建的 Google Workspace 网域可能会暂时受到更严格的配额限制。

参数

名称类型说明
contentTypeString要转换成的 MIME 类型。对于大多数 blob,'application/pdf' 是唯一有效的选项。对于 BMP、GIF、JPEG 或 PNG 格式的图片,'image/bmp''image/gif''image/jpeg''image/png' 中的任何一个也有效。对于 Google 文档,'text/markdown' 也有效。

返回

Blob - 以 blob 形式呈现的数据。


getBytes()

获取存储在此 blob 中的数据。

返回

Byte[] - 存储的字节。


getContentType()

获取相应 blob 中字节的内容类型。

返回

String|null - 此数据的内容类型(如果已知),否则为 null


getDataAsString()

以 UTF-8 编码获取相应 blob 的数据(以字符串形式)。

返回

String - 以字符串形式表示的数据。


getDataAsString(charset)

以指定编码获取相应 blob 的数据(以字符串形式)。

参数

名称类型说明
charsetString用于将相应 blob 中的数据编码为字符串的字符集。

返回

String - 以字符串形式表示的数据。


getHash()

获取相应附件的 SHA1 内容哈希。此方法不会计入 Gmail 读取配额。

返回

String - SHA1 内容哈希,以字符串形式表示。

授权

使用此方法的脚本需要获得以下一个或多个范围相关 REST API 中的相应范围的授权:

  • https://mail.google.com/

getName()

获取相应 blob 的名称。

返回

String|null - 相应数据的名称(如果已知),否则为 null


getSize()

获取此附件的大小。此方法比调用 getBytes().length 更快,并且不会计入 Gmail 读取配额。

返回

Integer - 附件的大小(以字节为单位)。

授权

使用此方法的脚本需要获得以下一个或多个范围相关 REST API 中的相应范围的授权:

  • https://mail.google.com/

isGoogleType()

返回相应 Blob 是否为 Google Workspace 文件(Google 表格、Google 文档等)。

返回

Boolean - 如果相应 blob 是 Google Workspace 文件,则为 true;否则为 false


setBytes(data)

设置存储在此 blob 中的数据。

参数

名称类型说明
dataByte[]新数据。

返回

Blob - 此 blob,用于链式调用。


setContentType(contentType)

设置相应 blob 中字节的内容类型。

参数

名称类型说明
contentTypeString新的 contentType。

返回

Blob - 此 blob,用于链式调用。


setContentTypeFromExtension()

根据文件扩展名设置此 blob 中字节的内容类型。如果无法从扩展名中推断出 contentType,则 contentType 为 null

返回

Blob - 此 blob,用于链式调用。


setDataFromString(string)

根据采用 UTF-8 编码的字符串设置相应 blob 的数据。

参数

名称类型说明
stringString字符串数据。

返回

Blob - 此 blob,用于链式调用。


setDataFromString(string, charset)

根据具有指定编码的字符串设置相应 blob 的数据。

参数

名称类型说明
stringString字符串数据。
charsetString将字符串解释为字节时要使用的字符集。

返回

Blob - 此 blob,用于链式调用。


setName(name)

设置相应 blob 的名称。

参数

名称类型说明
nameString新名称。

返回

Blob - 此 blob,用于链式调用。

已弃用的方法