Close httplib2 connections.
Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing `historyId`).
Retrieves the next page of results.
close()
Close httplib2 connections.
list(userId, historyTypes=None, labelId=None, maxResults=None, pageToken=None, startHistoryId=None, x__xgafv=None)
Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing `historyId`).
Args:
userId: string, The user's email address. The special value `me` can be used to indicate the authenticated user. (required)
historyTypes: string, History types to be returned by the function (repeated)
Allowed values
messageAdded -
messageDeleted -
labelAdded -
labelRemoved -
labelId: string, Only return messages with a label matching the ID.
maxResults: integer, Maximum number of history records to return. This field defaults to 100. The maximum allowed value for this field is 500.
pageToken: string, Page token to retrieve a specific page of results in the list.
startHistoryId: string, Required. Returns history records after the specified `startHistoryId`. The supplied `startHistoryId` should be obtained from the `historyId` of a message, thread, or previous `list` response. History IDs increase chronologically but are not contiguous with random gaps in between valid IDs. Supplying an invalid or out of date `startHistoryId` typically returns an `HTTP 404` error code. A `historyId` is typically valid for at least a week, but in some rare circumstances may be valid for only a few hours. If you receive an `HTTP 404` error response, your application should perform a full sync. If you receive no `nextPageToken` in the response, there are no updates to retrieve and you can store the returned `historyId` for a future request.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{
"history": [ # List of history records. Any `messages` contained in the response will typically only have `id` and `threadId` fields populated.
{ # A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.
"id": "A String", # The mailbox sequence ID.
"labelsAdded": [ # Labels added to messages in this history record.
{
"labelIds": [ # Label IDs added to the message.
"A String",
],
"message": { # An email message.
"classificationLabelValues": [ # Classification Label values on the message. Available Classification Label schemas can be queried using the Google Drive Labels API. Each classification label ID must be unique. If duplicate IDs are provided, only one will be retained, and the selection is arbitrary. Only used for Google Workspace accounts.
{ # Classification Labels applied to the email message. Classification Labels are different from Gmail inbox labels. Only used for Google Workspace accounts. [Learn more about classification labels](https://support.google.com/a/answer/9292382).
"fields": [ # Field values for the given classification label ID.
{ # Field values for a classification label.
"fieldId": "A String", # Required. The field ID for the Classification Label Value. Maps to the ID field of the Google Drive `Label.Field` object.
"selection": "A String", # Selection choice ID for the selection option. Should only be set if the field type is `SELECTION` in the Google Drive `Label.Field` object. Maps to the id field of the Google Drive `Label.Field.SelectionOptions` resource.
},
],
"labelId": "A String", # Required. The canonical or raw alphanumeric classification label ID. Maps to the ID field of the Google Drive Label resource.
},
],
"historyId": "A String", # The ID of the last history record that modified this message.
"id": "A String", # The immutable ID of the message.
"internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines ordering in the inbox. For normal SMTP-received email, this represents the time the message was originally accepted by Google, which is more reliable than the `Date` header. However, for API-migrated mail, it can be configured by client to be based on the `Date` header.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"payload": { # A single MIME message part. # The parsed email structure in the message parts.
"body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
"attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate `messages.attachments.get` request. When not present, the entire content of the message part body is contained in the data field.
"data": "A String", # The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
"size": 42, # Number of bytes for the message part data (encoding notwithstanding).
},
"filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
"headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as `To`, `From`, and `Subject`.
{
"name": "A String", # The name of the header before the `:` separator. For example, `To`.
"value": "A String", # The value of the header after the `:` separator. For example, `someuser@example.com`.
},
],
"mimeType": "A String", # The MIME type of the message part.
"partId": "A String", # The immutable ID of the message part.
"parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example `multipart/*`. For non- container MIME message part types, such as `text/plain`, this field is empty. For more information, see RFC 1521.
# Object with schema name: MessagePart
],
},
"raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in `messages.get` and `drafts.get` responses when the `format=RAW` parameter is supplied.
"sizeEstimate": 42, # Estimated size in bytes of the message.
"snippet": "A String", # A short part of the message text.
"threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met: 1. The requested `threadId` must be specified on the `Message` or `Draft.Message` you supply with your request. 2. The `References` and `In-Reply-To` headers must be set in compliance with the [RFC 2822](https://tools.ietf.org/html/rfc2822) standard. 3. The `Subject` headers must match.
},
},
],
"labelsRemoved": [ # Labels removed from messages in this history record.
{
"labelIds": [ # Label IDs removed from the message.
"A String",
],
"message": { # An email message.
"classificationLabelValues": [ # Classification Label values on the message. Available Classification Label schemas can be queried using the Google Drive Labels API. Each classification label ID must be unique. If duplicate IDs are provided, only one will be retained, and the selection is arbitrary. Only used for Google Workspace accounts.
{ # Classification Labels applied to the email message. Classification Labels are different from Gmail inbox labels. Only used for Google Workspace accounts. [Learn more about classification labels](https://support.google.com/a/answer/9292382).
"fields": [ # Field values for the given classification label ID.
{ # Field values for a classification label.
"fieldId": "A String", # Required. The field ID for the Classification Label Value. Maps to the ID field of the Google Drive `Label.Field` object.
"selection": "A String", # Selection choice ID for the selection option. Should only be set if the field type is `SELECTION` in the Google Drive `Label.Field` object. Maps to the id field of the Google Drive `Label.Field.SelectionOptions` resource.
},
],
"labelId": "A String", # Required. The canonical or raw alphanumeric classification label ID. Maps to the ID field of the Google Drive Label resource.
},
],
"historyId": "A String", # The ID of the last history record that modified this message.
"id": "A String", # The immutable ID of the message.
"internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines ordering in the inbox. For normal SMTP-received email, this represents the time the message was originally accepted by Google, which is more reliable than the `Date` header. However, for API-migrated mail, it can be configured by client to be based on the `Date` header.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"payload": { # A single MIME message part. # The parsed email structure in the message parts.
"body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
"attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate `messages.attachments.get` request. When not present, the entire content of the message part body is contained in the data field.
"data": "A String", # The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
"size": 42, # Number of bytes for the message part data (encoding notwithstanding).
},
"filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
"headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as `To`, `From`, and `Subject`.
{
"name": "A String", # The name of the header before the `:` separator. For example, `To`.
"value": "A String", # The value of the header after the `:` separator. For example, `someuser@example.com`.
},
],
"mimeType": "A String", # The MIME type of the message part.
"partId": "A String", # The immutable ID of the message part.
"parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example `multipart/*`. For non- container MIME message part types, such as `text/plain`, this field is empty. For more information, see RFC 1521.
# Object with schema name: MessagePart
],
},
"raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in `messages.get` and `drafts.get` responses when the `format=RAW` parameter is supplied.
"sizeEstimate": 42, # Estimated size in bytes of the message.
"snippet": "A String", # A short part of the message text.
"threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met: 1. The requested `threadId` must be specified on the `Message` or `Draft.Message` you supply with your request. 2. The `References` and `In-Reply-To` headers must be set in compliance with the [RFC 2822](https://tools.ietf.org/html/rfc2822) standard. 3. The `Subject` headers must match.
},
},
],
"messages": [ # List of messages changed in this history record. The fields for specific change types, such as `messagesAdded` may duplicate messages in this field. We recommend using the specific change-type fields instead of this.
{ # An email message.
"classificationLabelValues": [ # Classification Label values on the message. Available Classification Label schemas can be queried using the Google Drive Labels API. Each classification label ID must be unique. If duplicate IDs are provided, only one will be retained, and the selection is arbitrary. Only used for Google Workspace accounts.
{ # Classification Labels applied to the email message. Classification Labels are different from Gmail inbox labels. Only used for Google Workspace accounts. [Learn more about classification labels](https://support.google.com/a/answer/9292382).
"fields": [ # Field values for the given classification label ID.
{ # Field values for a classification label.
"fieldId": "A String", # Required. The field ID for the Classification Label Value. Maps to the ID field of the Google Drive `Label.Field` object.
"selection": "A String", # Selection choice ID for the selection option. Should only be set if the field type is `SELECTION` in the Google Drive `Label.Field` object. Maps to the id field of the Google Drive `Label.Field.SelectionOptions` resource.
},
],
"labelId": "A String", # Required. The canonical or raw alphanumeric classification label ID. Maps to the ID field of the Google Drive Label resource.
},
],
"historyId": "A String", # The ID of the last history record that modified this message.
"id": "A String", # The immutable ID of the message.
"internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines ordering in the inbox. For normal SMTP-received email, this represents the time the message was originally accepted by Google, which is more reliable than the `Date` header. However, for API-migrated mail, it can be configured by client to be based on the `Date` header.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"payload": { # A single MIME message part. # The parsed email structure in the message parts.
"body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
"attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate `messages.attachments.get` request. When not present, the entire content of the message part body is contained in the data field.
"data": "A String", # The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
"size": 42, # Number of bytes for the message part data (encoding notwithstanding).
},
"filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
"headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as `To`, `From`, and `Subject`.
{
"name": "A String", # The name of the header before the `:` separator. For example, `To`.
"value": "A String", # The value of the header after the `:` separator. For example, `someuser@example.com`.
},
],
"mimeType": "A String", # The MIME type of the message part.
"partId": "A String", # The immutable ID of the message part.
"parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example `multipart/*`. For non- container MIME message part types, such as `text/plain`, this field is empty. For more information, see RFC 1521.
# Object with schema name: MessagePart
],
},
"raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in `messages.get` and `drafts.get` responses when the `format=RAW` parameter is supplied.
"sizeEstimate": 42, # Estimated size in bytes of the message.
"snippet": "A String", # A short part of the message text.
"threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met: 1. The requested `threadId` must be specified on the `Message` or `Draft.Message` you supply with your request. 2. The `References` and `In-Reply-To` headers must be set in compliance with the [RFC 2822](https://tools.ietf.org/html/rfc2822) standard. 3. The `Subject` headers must match.
},
],
"messagesAdded": [ # Messages added to the mailbox in this history record.
{
"message": { # An email message.
"classificationLabelValues": [ # Classification Label values on the message. Available Classification Label schemas can be queried using the Google Drive Labels API. Each classification label ID must be unique. If duplicate IDs are provided, only one will be retained, and the selection is arbitrary. Only used for Google Workspace accounts.
{ # Classification Labels applied to the email message. Classification Labels are different from Gmail inbox labels. Only used for Google Workspace accounts. [Learn more about classification labels](https://support.google.com/a/answer/9292382).
"fields": [ # Field values for the given classification label ID.
{ # Field values for a classification label.
"fieldId": "A String", # Required. The field ID for the Classification Label Value. Maps to the ID field of the Google Drive `Label.Field` object.
"selection": "A String", # Selection choice ID for the selection option. Should only be set if the field type is `SELECTION` in the Google Drive `Label.Field` object. Maps to the id field of the Google Drive `Label.Field.SelectionOptions` resource.
},
],
"labelId": "A String", # Required. The canonical or raw alphanumeric classification label ID. Maps to the ID field of the Google Drive Label resource.
},
],
"historyId": "A String", # The ID of the last history record that modified this message.
"id": "A String", # The immutable ID of the message.
"internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines ordering in the inbox. For normal SMTP-received email, this represents the time the message was originally accepted by Google, which is more reliable than the `Date` header. However, for API-migrated mail, it can be configured by client to be based on the `Date` header.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"payload": { # A single MIME message part. # The parsed email structure in the message parts.
"body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
"attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate `messages.attachments.get` request. When not present, the entire content of the message part body is contained in the data field.
"data": "A String", # The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
"size": 42, # Number of bytes for the message part data (encoding notwithstanding).
},
"filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
"headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as `To`, `From`, and `Subject`.
{
"name": "A String", # The name of the header before the `:` separator. For example, `To`.
"value": "A String", # The value of the header after the `:` separator. For example, `someuser@example.com`.
},
],
"mimeType": "A String", # The MIME type of the message part.
"partId": "A String", # The immutable ID of the message part.
"parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example `multipart/*`. For non- container MIME message part types, such as `text/plain`, this field is empty. For more information, see RFC 1521.
# Object with schema name: MessagePart
],
},
"raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in `messages.get` and `drafts.get` responses when the `format=RAW` parameter is supplied.
"sizeEstimate": 42, # Estimated size in bytes of the message.
"snippet": "A String", # A short part of the message text.
"threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met: 1. The requested `threadId` must be specified on the `Message` or `Draft.Message` you supply with your request. 2. The `References` and `In-Reply-To` headers must be set in compliance with the [RFC 2822](https://tools.ietf.org/html/rfc2822) standard. 3. The `Subject` headers must match.
},
},
],
"messagesDeleted": [ # Messages deleted (not Trashed) from the mailbox in this history record.
{
"message": { # An email message.
"classificationLabelValues": [ # Classification Label values on the message. Available Classification Label schemas can be queried using the Google Drive Labels API. Each classification label ID must be unique. If duplicate IDs are provided, only one will be retained, and the selection is arbitrary. Only used for Google Workspace accounts.
{ # Classification Labels applied to the email message. Classification Labels are different from Gmail inbox labels. Only used for Google Workspace accounts. [Learn more about classification labels](https://support.google.com/a/answer/9292382).
"fields": [ # Field values for the given classification label ID.
{ # Field values for a classification label.
"fieldId": "A String", # Required. The field ID for the Classification Label Value. Maps to the ID field of the Google Drive `Label.Field` object.
"selection": "A String", # Selection choice ID for the selection option. Should only be set if the field type is `SELECTION` in the Google Drive `Label.Field` object. Maps to the id field of the Google Drive `Label.Field.SelectionOptions` resource.
},
],
"labelId": "A String", # Required. The canonical or raw alphanumeric classification label ID. Maps to the ID field of the Google Drive Label resource.
},
],
"historyId": "A String", # The ID of the last history record that modified this message.
"id": "A String", # The immutable ID of the message.
"internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines ordering in the inbox. For normal SMTP-received email, this represents the time the message was originally accepted by Google, which is more reliable than the `Date` header. However, for API-migrated mail, it can be configured by client to be based on the `Date` header.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"payload": { # A single MIME message part. # The parsed email structure in the message parts.
"body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
"attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate `messages.attachments.get` request. When not present, the entire content of the message part body is contained in the data field.
"data": "A String", # The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
"size": 42, # Number of bytes for the message part data (encoding notwithstanding).
},
"filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
"headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as `To`, `From`, and `Subject`.
{
"name": "A String", # The name of the header before the `:` separator. For example, `To`.
"value": "A String", # The value of the header after the `:` separator. For example, `someuser@example.com`.
},
],
"mimeType": "A String", # The MIME type of the message part.
"partId": "A String", # The immutable ID of the message part.
"parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example `multipart/*`. For non- container MIME message part types, such as `text/plain`, this field is empty. For more information, see RFC 1521.
# Object with schema name: MessagePart
],
},
"raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in `messages.get` and `drafts.get` responses when the `format=RAW` parameter is supplied.
"sizeEstimate": 42, # Estimated size in bytes of the message.
"snippet": "A String", # A short part of the message text.
"threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met: 1. The requested `threadId` must be specified on the `Message` or `Draft.Message` you supply with your request. 2. The `References` and `In-Reply-To` headers must be set in compliance with the [RFC 2822](https://tools.ietf.org/html/rfc2822) standard. 3. The `Subject` headers must match.
},
},
],
},
],
"historyId": "A String", # The ID of the mailbox's current history record.
"nextPageToken": "A String", # Page token to retrieve the next page of results in the list.
}
list_next()
Retrieves the next page of results.
Args:
previous_request: The request for the previous page. (required)
previous_response: The response from the request for the previous page. (required)
Returns:
A request object that you can call 'execute()' on to request the next
page. Returns None if there are no more items in the collection.