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

В документации Google приведен следующий пример:

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

- foo_bar_baz Content-Type: application / json;charset = UTF-8

{"id": строка, "threadId": строка, "labelIds": [строка], "сниппет": строка, "historyId": длинная без знака, "полезная нагрузка": {"partId": строка, "mimeType": строка, "имя файла": строка, "заголовки": [{"name": строка, "значение": строка}], "тело": ресурс users.messages.attachments, "parts ": [(MessagePart)]}," sizeEstimate ": целое число," raw ": байты}

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

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

HTTP / 1.1 200 Тип содержимого: application / json

{"id": строка, "threadId": строка, "labelIds": [строка], "фрагмент": строка, "historyId": длина без знака, "полезная нагрузка": {"partId": строка, "mimeType": строка, "имя файла": строка, "headers": [{"name": string, "value": string}], "body": users.messages.attachments Resource, "parts": [(MessagePart)]}, "sizeEstimate": integer, "raw ": bytes}

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

1 Ответ

0 голосов
/ 19 сентября 2018

Исходя из 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.

...