An attachment from Gmail. This is a regular Blob
except that it has an extra getSize()
method that is faster than calling
getBytes()
.length
and does not count against the Gmail read quota.
// 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(), ); } } }
Methods
Method | Return type | Brief description |
---|---|---|
copyBlob() | Blob | Returns a copy of this blob. |
getAs(contentType) | Blob | Return the data inside this object as a blob converted to the specified content type. |
getBytes() | Byte[] | Gets the data stored in this blob. |
getContentType() | String | Gets the content type of the bytes in this blob. |
getDataAsString() | String | Gets the data of this blob as a String with UTF-8 encoding. |
getDataAsString(charset) | String | Gets the data of this blob as a string with the specified encoding. |
getHash() | String | Gets the SHA1 content hash for this attachment. |
getName() | String | Gets the name of this blob. |
getSize() | Integer | Gets the size of this attachment. |
isGoogleType() | Boolean | Returns whether this blob is a Google Workspace file (Sheets, Docs, etc.). |
setBytes(data) | Blob | Sets the data stored in this blob. |
setContentType(contentType) | Blob | Sets the content type of the bytes in this blob. |
setContentTypeFromExtension() | Blob | Sets the content type of the bytes in this blob based on the file extension. |
setDataFromString(string) | Blob | Sets the data of this blob from a string with UTF-8 encoding. |
setDataFromString(string, charset) | Blob | Sets the data of this blob from a string with the specified encoding. |
setName(name) | Blob | Sets the name of this blob. |
Detailed documentation
copyBlob()
getAs(contentType)
Return the data inside this object as a blob converted to the specified content type. This method adds the appropriate extension to the filename—for example, "myfile.pdf". However, it assumes that the part of the filename that follows the last period (if any) is an existing extension that should be replaced. Consequently, "ShoppingList.12.25.2014" becomes "ShoppingList.12.25.pdf".
To view the daily quotas for conversions, see Quotas for Google Services. Newly created Google Workspace domains might be temporarily subject to stricter quotas.
Parameters
Name | Type | Description |
---|---|---|
contentType | String | The MIME type to convert to. For most blobs, 'application/pdf' is
the only valid option. For images in BMP, GIF, JPEG, or PNG format, any of 'image/bmp' , 'image/gif' , 'image/jpeg' , or 'image/png' are also
valid. For a Google Docs document, 'text/markdown' is also valid. |
Return
Blob
— The data as a blob.
getBytes()
Gets the data stored in this blob.
Return
Byte[]
— The stored bytes.
getContentType()
Gets the content type of the bytes in this blob.
Return
String
— The content type of this data, if known, or null
.
getDataAsString()
Gets the data of this blob as a String with UTF-8 encoding.
Return
String
— The data as a string.
getDataAsString(charset)
Gets the data of this blob as a string with the specified encoding.
Parameters
Name | Type | Description |
---|---|---|
charset | String | The charset to use in encoding the data in this blob as a string. |
Return
String
— The data as a string.
getHash()
Gets the SHA1 content hash for this attachment. This method does not count against the Gmail read quota.
Return
String
— The SHA1 content hash, as a string.
Authorization
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
-
https://mail.google.com/
getName()
Gets the name of this blob.
Return
String
— The name of this data, if known, or null
.
getSize()
Gets the size of this attachment. This method is faster than calling getBytes()
.length
and does not count against the Gmail read quota.
Return
Integer
— The size of the attachment, in bytes.
Authorization
Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API:
-
https://mail.google.com/
isGoogleType()
Returns whether this blob is a Google Workspace file (Sheets, Docs, etc.).
Return
Boolean
— true
if this blob is a Google Workspace file; false
if not.
setBytes(data)
Sets the data stored in this blob.
Parameters
Name | Type | Description |
---|---|---|
data | Byte[] | The new data. |
Return
Blob
— This blob, for chaining.
setContentType(contentType)
Sets the content type of the bytes in this blob.
Parameters
Name | Type | Description |
---|---|---|
contentType | String | The new contentType. |
Return
Blob
— This blob, for chaining.
setContentTypeFromExtension()
Sets the content type of the bytes in this blob based on the file extension. The contentType is
null
if it cannot be guessed from its extension.
Return
Blob
— This blob, for chaining.
setDataFromString(string)
Sets the data of this blob from a string with UTF-8 encoding.
Parameters
Name | Type | Description |
---|---|---|
string | String | The string data. |
Return
Blob
— This blob, for chaining.
setDataFromString(string, charset)
Sets the data of this blob from a string with the specified encoding.
Parameters
Name | Type | Description |
---|---|---|
string | String | The string data. |
charset | String | The charset to use in interpreting the string as bytes. |
Return
Blob
— This blob, for chaining.
setName(name)
Sets the name of this blob.
Parameters
Name | Type | Description |
---|---|---|
name | String | The new name. |
Return
Blob
— This blob, for chaining.