create(userId, body=None, media_body=None)
Creates a new draft with the DRAFT label.
Immediately and permanently deletes the specified draft. Does not simply trash it.
Gets the specified draft.
list(userId, pageToken=None, maxResults=None)
Lists the drafts in the user's mailbox.
list_next(previous_request, previous_response)
Retrieves the next page of results.
send(userId, body=None, media_body=None)
Sends the specified, existing draft to the recipients in the To, Cc, and Bcc headers.
update(userId, id, body=None, media_body=None)
Replaces a draft's content.
create(userId, body=None, media_body=None)
Creates a new draft with the DRAFT label.
Args:
userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
body: object, The request body.
The object takes the form of:
{ # A draft email in the user's mailbox.
"message": { # An email message. # The message content of the draft.
"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.
"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. 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 messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
"size": 42, # Total number of bytes in the body of the message part.
},
"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 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.
},
],
"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
],
},
"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 messages.get and drafts.get responses when the format=RAW parameter is supplied.
"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:
# - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
# - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
# - The Subject headers must match.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"id": "A String", # The immutable ID of the message.
},
"id": "A String", # The immutable ID of the draft.
}
media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
Returns:
An object of the form:
{ # A draft email in the user's mailbox.
"message": { # An email message. # The message content of the draft.
"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.
"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. 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 messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
"size": 42, # Total number of bytes in the body of the message part.
},
"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 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.
},
],
"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
],
},
"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 messages.get and drafts.get responses when the format=RAW parameter is supplied.
"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:
# - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
# - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
# - The Subject headers must match.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"id": "A String", # The immutable ID of the message.
},
"id": "A String", # The immutable ID of the draft.
}
delete(userId, id)
Immediately and permanently deletes the specified draft. Does not simply trash it. Args: userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required) id: string, The ID of the draft to delete. (required)
get(userId, id, format=None)
Gets the specified draft.
Args:
userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
id: string, The ID of the draft to retrieve. (required)
format: string, The format to return the draft in.
Allowed values
full -
metadata -
minimal -
raw -
Returns:
An object of the form:
{ # A draft email in the user's mailbox.
"message": { # An email message. # The message content of the draft.
"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.
"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. 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 messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
"size": 42, # Total number of bytes in the body of the message part.
},
"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 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.
},
],
"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
],
},
"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 messages.get and drafts.get responses when the format=RAW parameter is supplied.
"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:
# - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
# - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
# - The Subject headers must match.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"id": "A String", # The immutable ID of the message.
},
"id": "A String", # The immutable ID of the draft.
}
list(userId, pageToken=None, maxResults=None)
Lists the drafts in the user's mailbox.
Args:
userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
pageToken: string, Page token to retrieve a specific page of results in the list.
maxResults: integer, Maximum number of drafts to return.
Returns:
An object of the form:
{
"nextPageToken": "A String", # Token to retrieve the next page of results in the list.
"resultSizeEstimate": 42, # Estimated total number of results.
"drafts": [ # List of drafts.
{ # A draft email in the user's mailbox.
"message": { # An email message. # The message content of the draft.
"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.
"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. 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 messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
"size": 42, # Total number of bytes in the body of the message part.
},
"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 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.
},
],
"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
],
},
"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 messages.get and drafts.get responses when the format=RAW parameter is supplied.
"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:
# - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
# - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
# - The Subject headers must match.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"id": "A String", # The immutable ID of the message.
},
"id": "A String", # The immutable ID of the draft.
},
],
}
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.
send(userId, body=None, media_body=None)
Sends the specified, existing draft to the recipients in the To, Cc, and Bcc headers.
Args:
userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
body: object, The request body.
The object takes the form of:
{ # A draft email in the user's mailbox.
"message": { # An email message. # The message content of the draft.
"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.
"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. 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 messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
"size": 42, # Total number of bytes in the body of the message part.
},
"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 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.
},
],
"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
],
},
"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 messages.get and drafts.get responses when the format=RAW parameter is supplied.
"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:
# - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
# - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
# - The Subject headers must match.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"id": "A String", # The immutable ID of the message.
},
"id": "A String", # The immutable ID of the draft.
}
media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
Returns:
An object of the form:
{ # 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 Date header. However, for API-migrated mail, it can be configured by client to be based on the Date 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. 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 messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
"size": 42, # Total number of bytes in the body of the message part.
},
"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 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.
},
],
"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
],
},
"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 messages.get and drafts.get responses when the format=RAW parameter is supplied.
"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:
# - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
# - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
# - The Subject headers must match.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"id": "A String", # The immutable ID of the message.
}
update(userId, id, body=None, media_body=None)
Replaces a draft's content.
Args:
userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
id: string, The ID of the draft to update. (required)
body: object, The request body.
The object takes the form of:
{ # A draft email in the user's mailbox.
"message": { # An email message. # The message content of the draft.
"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.
"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. 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 messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
"size": 42, # Total number of bytes in the body of the message part.
},
"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 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.
},
],
"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
],
},
"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 messages.get and drafts.get responses when the format=RAW parameter is supplied.
"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:
# - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
# - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
# - The Subject headers must match.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"id": "A String", # The immutable ID of the message.
},
"id": "A String", # The immutable ID of the draft.
}
media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
Returns:
An object of the form:
{ # A draft email in the user's mailbox.
"message": { # An email message. # The message content of the draft.
"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.
"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. 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 messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
"size": 42, # Total number of bytes in the body of the message part.
},
"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 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.
},
],
"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
],
},
"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 messages.get and drafts.get responses when the format=RAW parameter is supplied.
"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:
# - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
# - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
# - The Subject headers must match.
"labelIds": [ # List of IDs of labels applied to this message.
"A String",
],
"id": "A String", # The immutable ID of the message.
},
"id": "A String", # The immutable ID of the draft.
}