Lists the history of all changes to the given mailbox. History results are
list_next(previous_request, previous_response)
Retrieves the next page of results.
list(userId, labelId=None, maxResults=None, startHistoryId=None, pageToken=None, x__xgafv=None, historyTypes=None)
Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing <code>historyId</code>). Args: userId: string, The user's email address. The special value <code>me</code> can be used to indicate the authenticated user. (required) labelId: string, Only return messages with a label matching the ID. maxResults: integer, The maximum number of history records to return. startHistoryId: string, Required. Returns history records after the specified <code>startHistoryId</code>. The supplied <code>startHistoryId</code> should be obtained from the <code>historyId</code> of a message, thread, or previous <code>list</code> response. History IDs increase chronologically but are not contiguous with random gaps in between valid IDs. Supplying an invalid or out of date <code>startHistoryId</code> typically returns an <code>HTTP 404</code> error code. A <code>historyId</code> 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 <code>HTTP 404</code> error response, your application should perform a full sync. If you receive no <code>nextPageToken</code> in the response, there are no updates to retrieve and you can store the returned <code>historyId</code> for a future request. pageToken: string, Page token to retrieve a specific page of results in the list. x__xgafv: string, V1 error format. Allowed values 1 - v1 error format 2 - v2 error format historyTypes: string, History types to be returned by the function (repeated) Returns: An object of the form: { "nextPageToken": "A String", # Page token to retrieve the next page of results in the list. "historyId": "A String", # The ID of the mailbox's current history record. "history": [ # List of history records. Any <code>messages</code> contained in the # response will typically only have <code>id</code> and # <code>threadId</code> fields populated. { # A record of a change to the user's mailbox. Each history change may affect # multiple messages in multiple ways. "labelsAdded": [ # Labels added to messages in this history record. { "labelIds": [ # Label IDs added to the message. "A String", ], "message": { # An email 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 <code>Date</code> header. However, for API-migrated mail, it can # be configured by client to be based on the <code>Date</code> header. "historyId": "A String", # The ID of the last history record that modified this message. "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. "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. "attachmentId": "A String", # When present, contains the ID of an external attachment that can be # retrieved in a separate <code>messages.attachments.get</code> request. # When not present, the entire content of the message part body is # contained in the data field. "size": 42, # Number of bytes for the message part data (encoding notwithstanding). }, "mimeType": "A String", # The MIME type of the message part. "partId": "A String", # The immutable ID of the message part. "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 <code>To</code>, <code>From</code>, and # <code>Subject</code>. { "name": "A String", # The name of the header before the <code>:</code> separator. For # example, <code>To</code>. "value": "A String", # The value of the header after the <code>:</code> separator. For example, # <code>someuser@example.com</code>. }, ], "parts": [ # The child MIME message parts of this part. This only applies to container # MIME message parts, for example <code>multipart/*</code>. For non- # container MIME message part types, such as <code>text/plain</code>, this # field is empty. For more information, see # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>. # Object with schema name: MessagePart ], }, "snippet": "A String", # A short part of the message text. "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url # encoded string. Returned in <code>messages.get</code> and # <code>drafts.get</code> responses when the <code>format=RAW</code> # parameter is supplied. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "sizeEstimate": 42, # Estimated size in bytes of the message. "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: # <ol><li>The requested <code>threadId</code> must be specified on the # <code>Message</code> or <code>Draft.Message</code> you supply with your # request.</li> # <li>The <code>References</code> and <code>In-Reply-To</code> headers must # be set in compliance with the # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li> # <li>The <code>Subject</code> headers must match. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "labelIds": [ # List of IDs of labels applied to this message. # @mutable gmail.users.messages.insert gmail.users.messages.modify "A String", ], "id": "A String", # The immutable ID of the message. }, }, ], "messages": [ # List of messages changed in this history record. The fields for specific # change types, such as <code>messagesAdded</code> may duplicate messages in # this field. We recommend using the specific change-type fields instead # of this. { # An email 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 <code>Date</code> header. However, for API-migrated mail, it can # be configured by client to be based on the <code>Date</code> header. "historyId": "A String", # The ID of the last history record that modified this message. "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. "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. "attachmentId": "A String", # When present, contains the ID of an external attachment that can be # retrieved in a separate <code>messages.attachments.get</code> request. # When not present, the entire content of the message part body is # contained in the data field. "size": 42, # Number of bytes for the message part data (encoding notwithstanding). }, "mimeType": "A String", # The MIME type of the message part. "partId": "A String", # The immutable ID of the message part. "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 <code>To</code>, <code>From</code>, and # <code>Subject</code>. { "name": "A String", # The name of the header before the <code>:</code> separator. For # example, <code>To</code>. "value": "A String", # The value of the header after the <code>:</code> separator. For example, # <code>someuser@example.com</code>. }, ], "parts": [ # The child MIME message parts of this part. This only applies to container # MIME message parts, for example <code>multipart/*</code>. For non- # container MIME message part types, such as <code>text/plain</code>, this # field is empty. For more information, see # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>. # Object with schema name: MessagePart ], }, "snippet": "A String", # A short part of the message text. "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url # encoded string. Returned in <code>messages.get</code> and # <code>drafts.get</code> responses when the <code>format=RAW</code> # parameter is supplied. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "sizeEstimate": 42, # Estimated size in bytes of the message. "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: # <ol><li>The requested <code>threadId</code> must be specified on the # <code>Message</code> or <code>Draft.Message</code> you supply with your # request.</li> # <li>The <code>References</code> and <code>In-Reply-To</code> headers must # be set in compliance with the # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li> # <li>The <code>Subject</code> headers must match. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "labelIds": [ # List of IDs of labels applied to this message. # @mutable gmail.users.messages.insert gmail.users.messages.modify "A String", ], "id": "A String", # The immutable ID of the message. }, ], "messagesAdded": [ # Messages added to the mailbox in this history record. { "message": { # An email 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 <code>Date</code> header. However, for API-migrated mail, it can # be configured by client to be based on the <code>Date</code> header. "historyId": "A String", # The ID of the last history record that modified this message. "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. "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. "attachmentId": "A String", # When present, contains the ID of an external attachment that can be # retrieved in a separate <code>messages.attachments.get</code> request. # When not present, the entire content of the message part body is # contained in the data field. "size": 42, # Number of bytes for the message part data (encoding notwithstanding). }, "mimeType": "A String", # The MIME type of the message part. "partId": "A String", # The immutable ID of the message part. "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 <code>To</code>, <code>From</code>, and # <code>Subject</code>. { "name": "A String", # The name of the header before the <code>:</code> separator. For # example, <code>To</code>. "value": "A String", # The value of the header after the <code>:</code> separator. For example, # <code>someuser@example.com</code>. }, ], "parts": [ # The child MIME message parts of this part. This only applies to container # MIME message parts, for example <code>multipart/*</code>. For non- # container MIME message part types, such as <code>text/plain</code>, this # field is empty. For more information, see # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>. # Object with schema name: MessagePart ], }, "snippet": "A String", # A short part of the message text. "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url # encoded string. Returned in <code>messages.get</code> and # <code>drafts.get</code> responses when the <code>format=RAW</code> # parameter is supplied. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "sizeEstimate": 42, # Estimated size in bytes of the message. "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: # <ol><li>The requested <code>threadId</code> must be specified on the # <code>Message</code> or <code>Draft.Message</code> you supply with your # request.</li> # <li>The <code>References</code> and <code>In-Reply-To</code> headers must # be set in compliance with the # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li> # <li>The <code>Subject</code> headers must match. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "labelIds": [ # List of IDs of labels applied to this message. # @mutable gmail.users.messages.insert gmail.users.messages.modify "A String", ], "id": "A String", # The immutable ID of the message. }, }, ], "labelsRemoved": [ # Labels removed from messages in this history record. { "labelIds": [ # Label IDs removed from the message. "A String", ], "message": { # An email 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 <code>Date</code> header. However, for API-migrated mail, it can # be configured by client to be based on the <code>Date</code> header. "historyId": "A String", # The ID of the last history record that modified this message. "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. "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. "attachmentId": "A String", # When present, contains the ID of an external attachment that can be # retrieved in a separate <code>messages.attachments.get</code> request. # When not present, the entire content of the message part body is # contained in the data field. "size": 42, # Number of bytes for the message part data (encoding notwithstanding). }, "mimeType": "A String", # The MIME type of the message part. "partId": "A String", # The immutable ID of the message part. "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 <code>To</code>, <code>From</code>, and # <code>Subject</code>. { "name": "A String", # The name of the header before the <code>:</code> separator. For # example, <code>To</code>. "value": "A String", # The value of the header after the <code>:</code> separator. For example, # <code>someuser@example.com</code>. }, ], "parts": [ # The child MIME message parts of this part. This only applies to container # MIME message parts, for example <code>multipart/*</code>. For non- # container MIME message part types, such as <code>text/plain</code>, this # field is empty. For more information, see # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>. # Object with schema name: MessagePart ], }, "snippet": "A String", # A short part of the message text. "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url # encoded string. Returned in <code>messages.get</code> and # <code>drafts.get</code> responses when the <code>format=RAW</code> # parameter is supplied. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "sizeEstimate": 42, # Estimated size in bytes of the message. "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: # <ol><li>The requested <code>threadId</code> must be specified on the # <code>Message</code> or <code>Draft.Message</code> you supply with your # request.</li> # <li>The <code>References</code> and <code>In-Reply-To</code> headers must # be set in compliance with the # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li> # <li>The <code>Subject</code> headers must match. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "labelIds": [ # List of IDs of labels applied to this message. # @mutable gmail.users.messages.insert gmail.users.messages.modify "A String", ], "id": "A String", # The immutable ID of the message. }, }, ], "messagesDeleted": [ # Messages deleted (not Trashed) from the mailbox in this history record. { "message": { # An email 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 <code>Date</code> header. However, for API-migrated mail, it can # be configured by client to be based on the <code>Date</code> header. "historyId": "A String", # The ID of the last history record that modified this message. "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. "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. "attachmentId": "A String", # When present, contains the ID of an external attachment that can be # retrieved in a separate <code>messages.attachments.get</code> request. # When not present, the entire content of the message part body is # contained in the data field. "size": 42, # Number of bytes for the message part data (encoding notwithstanding). }, "mimeType": "A String", # The MIME type of the message part. "partId": "A String", # The immutable ID of the message part. "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 <code>To</code>, <code>From</code>, and # <code>Subject</code>. { "name": "A String", # The name of the header before the <code>:</code> separator. For # example, <code>To</code>. "value": "A String", # The value of the header after the <code>:</code> separator. For example, # <code>someuser@example.com</code>. }, ], "parts": [ # The child MIME message parts of this part. This only applies to container # MIME message parts, for example <code>multipart/*</code>. For non- # container MIME message part types, such as <code>text/plain</code>, this # field is empty. For more information, see # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>. # Object with schema name: MessagePart ], }, "snippet": "A String", # A short part of the message text. "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url # encoded string. Returned in <code>messages.get</code> and # <code>drafts.get</code> responses when the <code>format=RAW</code> # parameter is supplied. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "sizeEstimate": 42, # Estimated size in bytes of the message. "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: # <ol><li>The requested <code>threadId</code> must be specified on the # <code>Message</code> or <code>Draft.Message</code> you supply with your # request.</li> # <li>The <code>References</code> and <code>In-Reply-To</code> headers must # be set in compliance with the # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li> # <li>The <code>Subject</code> headers must match. # @mutable gmail.users.messages.insert gmail.users.messages.send # @mutable gmail.users.drafts.create gmail.users.drafts.update "labelIds": [ # List of IDs of labels applied to this message. # @mutable gmail.users.messages.insert gmail.users.messages.modify "A String", ], "id": "A String", # The immutable ID of the message. }, }, ], "id": "A String", # The mailbox sequence ID. }, ], }
list_next(previous_request, previous_response)
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.