<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="gmail_v1.html">Gmail API</a> . <a href="gmail_v1.users.html">users</a> . <a href="gmail_v1.users.messages.html">messages</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="gmail_v1.users.messages.attachments.html">attachments()</a></code>
</p>
<p class="firstline">Returns the attachments Resource.</p>

<p class="toc_element">
  <code><a href="#batchDelete">batchDelete(userId, body)</a></code></p>
<p class="firstline">Deletes many messages by message ID. Provides no guarantees that messages were not already deleted or even existed at all.</p>
<p class="toc_element">
  <code><a href="#batchModify">batchModify(userId, body)</a></code></p>
<p class="firstline">Modifies the labels on the specified messages.</p>
<p class="toc_element">
  <code><a href="#delete">delete(userId, id)</a></code></p>
<p class="firstline">Immediately and permanently deletes the specified message. This operation cannot be undone. Prefer messages.trash instead.</p>
<p class="toc_element">
  <code><a href="#get">get(userId, id, format=None, metadataHeaders=None)</a></code></p>
<p class="firstline">Gets the specified message.</p>
<p class="toc_element">
  <code><a href="#import_">import_(userId, body=None, media_body=None, internalDateSource=None, neverMarkSpam=None, media_mime_type=None, deleted=None, processForCalendar=None)</a></code></p>
<p class="firstline">Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. Does not send a message.</p>
<p class="toc_element">
  <code><a href="#insert">insert(userId, body=None, media_body=None, internalDateSource=None, media_mime_type=None, deleted=None)</a></code></p>
<p class="firstline">Directly inserts a message into only this user's mailbox similar to IMAP APPEND, bypassing most scanning and classification. Does not send a message.</p>
<p class="toc_element">
  <code><a href="#list">list(userId, labelIds=None, q=None, pageToken=None, maxResults=None, includeSpamTrash=None)</a></code></p>
<p class="firstline">Lists the messages in the user's mailbox.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#modify">modify(userId, id, body)</a></code></p>
<p class="firstline">Modifies the labels on the specified message.</p>
<p class="toc_element">
  <code><a href="#send">send(userId, body=None, media_body=None, media_mime_type=None)</a></code></p>
<p class="firstline">Sends the specified message to the recipients in the To, Cc, and Bcc headers.</p>
<p class="toc_element">
  <code><a href="#trash">trash(userId, id)</a></code></p>
<p class="firstline">Moves the specified message to the trash.</p>
<p class="toc_element">
  <code><a href="#untrash">untrash(userId, id)</a></code></p>
<p class="firstline">Removes the specified message from the trash.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="batchDelete">batchDelete(userId, body)</code>
  <pre>Deletes many messages by message ID. Provides no guarantees that messages were not already deleted or even existed at all.

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. (required)
    The object takes the form of:

{
    "ids": [ # The IDs of the messages to delete.
      "A String",
    ],
  }

</pre>
</div>

<div class="method">
    <code class="details" id="batchModify">batchModify(userId, body)</code>
  <pre>Modifies the labels on the specified messages.

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. (required)
    The object takes the form of:

{
    "removeLabelIds": [ # A list of label IDs to remove from messages.
      "A String",
    ],
    "ids": [ # The IDs of the messages to modify. There is a limit of 1000 ids per request.
      "A String",
    ],
    "addLabelIds": [ # A list of label IDs to add to messages.
      "A String",
    ],
  }

</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(userId, id)</code>
  <pre>Immediately and permanently deletes the specified message. This operation cannot be undone. Prefer messages.trash instead.

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 message to delete. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(userId, id, format=None, metadataHeaders=None)</code>
  <pre>Gets the specified message.

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 message to retrieve. (required)
  format: string, The format to return the message in.
    Allowed values
      full - 
      metadata - 
      minimal - 
      raw - 
  metadataHeaders: string, When given and format is METADATA, only include headers specified. (repeated)

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 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 messages.attachments.get 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 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="import_">import_(userId, body=None, media_body=None, internalDateSource=None, neverMarkSpam=None, media_mime_type=None, deleted=None, processForCalendar=None)</code>
  <pre>Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. Does not send a message.

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:

{ # 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 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 messages.attachments.get 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 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.
}

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  internalDateSource: string, Source for Gmail's internal date of the message.
    Allowed values
      dateHeader - 
      receivedTime - 
  neverMarkSpam: boolean, Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
  deleted: boolean, Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for G Suite accounts.
  processForCalendar: boolean, Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user.

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 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 messages.attachments.get 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 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(userId, body=None, media_body=None, internalDateSource=None, media_mime_type=None, deleted=None)</code>
  <pre>Directly inserts a message into only this user's mailbox similar to IMAP APPEND, bypassing most scanning and classification. Does not send a message.

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:

{ # 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 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 messages.attachments.get 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 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.
}

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  internalDateSource: string, Source for Gmail's internal date of the message.
    Allowed values
      dateHeader - 
      receivedTime - 
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
  deleted: boolean, Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for G Suite accounts.

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 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 messages.attachments.get 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 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(userId, labelIds=None, q=None, pageToken=None, maxResults=None, includeSpamTrash=None)</code>
  <pre>Lists the messages 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)
  labelIds: string, Only return messages with labels that match all of the specified label IDs. (repeated)
  q: string, Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, "from:someuser@example.com rfc822msgid:<somemsgid@example.com> is:unread". Parameter cannot be used when accessing the api using the gmail.metadata scope.
  pageToken: string, Page token to retrieve a specific page of results in the list.
  maxResults: integer, Maximum number of messages to return.
  includeSpamTrash: boolean, Include messages from SPAM and TRASH in the results.

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.
    "messages": [ # List of messages.
      { # 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 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 messages.attachments.get 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 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.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>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.
    </pre>
</div>

<div class="method">
    <code class="details" id="modify">modify(userId, id, body)</code>
  <pre>Modifies the labels on the specified message.

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 message to modify. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
    "removeLabelIds": [ # A list IDs of labels to remove from this message.
      "A String",
    ],
    "addLabelIds": [ # A list of IDs of labels to add to this message.
      "A String",
    ],
  }


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 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 messages.attachments.get 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 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="send">send(userId, body=None, media_body=None, media_mime_type=None)</code>
  <pre>Sends the specified message 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:

{ # 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 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 messages.attachments.get 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 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.
}

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  media_mime_type: string, The MIME type 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 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 messages.attachments.get 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 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="trash">trash(userId, id)</code>
  <pre>Moves the specified message to the trash.

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 message to Trash. (required)

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 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 messages.attachments.get 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 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="untrash">untrash(userId, id)</code>
  <pre>Removes the specified message from the trash.

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 message to remove from Trash. (required)

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 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 messages.attachments.get 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 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.
  }</pre>
</div>

</body></html>