0

谷歌文档给出了一个例子如下:

POST /upload/gmail/v1/users/userId/messages/send?uploadType=multipart HTTP/1.1 主机:www.googleapis.com 授权:承载 your_auth_token 内容类型:multipart/related;边界=foo_bar_baz 内容长度:number_of_bytes_in_entire_request_body

--foo_bar_baz 内容类型:应用程序/json;字符集=UTF-8

{“id”:字符串,“threadId”:字符串,“labelIds”:[字符串],“snippet”:字符串,“historyId”:无符号长,“payload”:{“partId”:字符串,“mimeType”:字符串, "filename": 字符串, "headers": [ { "name": string, "value": string } ], "body": users.messages.attachments Resource, "parts": [ (MessagePart) ] }, " sizeEstimate”:整数,“原始”:字节 }

--foo_bar_baz 内容类型:message/rfc822

电子邮件消息数据 --foo_bar_baz-- 如果请求成功,服务器将返回 HTTP 200 OK 状态代码以及任何元数据:

HTTP/1.1 200 内容类型:application/json

{“id”:字符串,“threadId”:字符串,“labelIds”:[字符串],“snippet”:字符串,“historyId”:无符号长,“payload”:{“partId”:字符串,“mimeType”:字符串, "filename": 字符串, "headers": [ { "name": string, "value": string } ], "body": users.messages.attachments Resource, "parts": [ (MessagePart) ] }, " sizeEstimate”:整数,“原始”:字节 }

有人可以通过查看上面的示例来制作示例请求正文吗?我需要发送带有附件的电子邮件。

4

1 回答 1

0

基于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
});

这也是Amit Agarwal 在 Google Appscript 中编写的来自数字灵感的示例代码。此示例展示了如何使用 Gmail API 轻松发送带有文件附件的电子邮件。

于 2018-09-19T05:58:52.703 回答