Как выглядит тело запроса при звонке в gmail api для отправки электронного письма с вложением (multipart)?

В документации Google приведен пример, приведенный ниже:

POST / upload / gmail / v1 / users / userId / messages / send? UploadType=multipart HTTP/1.1 Хост: www.googleapis.com Авторизация: Bearer your_auth_token Тип контента: multipart/related; border = foo_bar_baz Content-Length: number_of_bytes_in_entire_request_body

--foo_bar_baz Content-Type: application / json; кодировка = UTF-8

{"id": строка, "threadId": строка, "labelIds": [ string ], "snippet": строка, "historyId": unsigned long, "payload": { "partId": строка, "mimeType": строка, "имя файла": строка, "заголовки": [ { "имя": строка, "значение": строка} ], "тело": ресурс users.messages.attachments, "части": [ (MessagePart) ] }, "sizeEstimate": integer, "raw": bytes }

--foo_bar_baz Тип содержимого: message/rfc822

Данные сообщения электронной почты --foo_bar_baz-- Если запрос выполнен успешно, сервер возвращает код состояния HTTP 200 OK вместе с любыми метаданными:

HTTP / 1.1 200 Content-Type: application / json

{"id": строка, "threadId": строка, "labelIds": [ string ], "snippet": строка, "historyId": unsigned long, "payload": { "partId": строка, "mimeType": строка, "имя файла": строка, "заголовки": [ { "имя": строка, "значение": строка} ], "тело": ресурс users.messages.attachments, "части": [ (MessagePart) ] }, "sizeEstimate": integer, "raw": bytes }

Может ли кто-нибудь сделать образец тела запроса, взглянув на приведенный выше пример? Мне нужно отправить письмо с приложением.

1 ответ

Основанный на SO, связанном посте, тело запроса может выглядеть примерно так:

var mail = [
  'Content-Type: multipart/mixed; boundary="foo_bar_baz"\r\n',
  'MIME-Version: 1.0\r\n',
  'From: sender@gmail.com\r\n',
  'To: receiver@gmail.com\r\n',
  'Subject: Subject Text\r\n\r\n',

  '--foo_bar_baz\r\n',
  'Content-Type: text/plain; charset="UTF-8"\r\n',
  'MIME-Version: 1.0\r\n',
  'Content-Transfer-Encoding: 7bit\r\n\r\n',

  'The actual message text goes here\r\n\r\n',

  '--foo_bar_baz\r\n',
  'Content-Type: image/png\r\n',
  'MIME-Version: 1.0\r\n',
  'Content-Transfer-Encoding: base64\r\n',
  'Content-Disposition: attachment; filename="example.png"\r\n\r\n',

   pngData, '\r\n\r\n',

   '--foo_bar_baz--'
].join('');

    var response = UrlFetchApp.fetch(
        "https://www.googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=media", {
            method: "POST",
            headers: {
                "Authorization": "Bearer " + ScriptApp.getOAuthToken(),
                "Content-Type": "message/rfc822",
            },
            muteHttpExceptions: true,
            payload: mail
});

Вот также пример кода из цифрового вдохновения, написанный Амитом Агарвалом в Google Appscript. В этом примере показано, как можно легко отправлять сообщения электронной почты с вложенными файлами с помощью Gmail API.

Другие вопросы по тегам