Class GmailAttachment

Gmail 附件

Gmail 中的附件。这是一个常规的 Blob,不同之处在于前者包含额外的 getSize() 方法,该方法比调用 getBytes().length 更快,并且不会计入 Gmail 读取配额。

// Logs information about any attachments in the first 100 inbox threads.
var threads = GmailApp.getInboxThreads(0, 100);
var msgs = GmailApp.getMessagesForThreads(threads);
for (var i = 0 ; i < msgs.length; i++) {
  for (var j = 0; j < msgs[i].length; j++) {
    var attachments = msgs[i][j].getAttachments();
    for (var 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获取此 blob 中字节的内容类型。
getDataAsString()String以 UTF-8 编码的字符串形式获取此 blob 的数据。
getDataAsString(charset)String以具有指定编码的字符串形式获取此 blob 的数据。
getHash()String获取此附件的 SHA1 内容哈希。
getName()String获取此 blob 的名称。
getSize()Integer获取此附件的大小。
isGoogleType()Boolean返回此 blob 是否为 Google Workspace 文件(表格、文档等)。
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' 中的任意一种都有效。

返回

Blob - 数据作为 blob。


getBytes()

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

返回

Byte[] - 存储的字节数。


getContentType()

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

返回

String - 此数据的内容类型(如果已知)或 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


getSize()

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

返回

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

授权

使用此方法的脚本需要通过以下范围相关 REST API 的适当范围进行授权:

  • https://mail.google.com/

isGoogleType()

返回此 blob 是否为 Google Workspace 文件(表格、文档等)。

返回

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


setBytes(data)

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

参数

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

返回

Blob - 此 blob,用于串联。


setContentType(contentType)

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

参数

名称类型说明
contentTypeString新的 contentType。

返回

Blob - 此 blob,用于串联。


setContentTypeFromExtension()

根据文件扩展名设置此 blob 中字节的内容类型。如果无法根据扩展程序猜测出 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,用于串联。

已废弃的方法