Как выглядит тело запроса при звонке в 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.