在调用gmail api发送带附件的电子邮件(multipart)时,请求的正文如何?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在调用gmail api发送带附件的电子邮件(multipart)时,请求的正文如何?相关的知识,希望对你有一定的参考价值。

Google文档举例如下:

POST / upload / gmail / v1 / users / userId / messages / send?uploadType = multipart HTTP / 1.1 Host:www.googleapis.com授权:Bearer your_auth_token内容类型:multipart / related; boundary = foo_bar_baz Content-Length:number_of_bytes_in_entire_request_body

--foo_bar_baz Content-Type:application / json;字符集= UTF-8

{“id”:string,“threadId”:string,“labelIds”:[string],“snippet”:string,“historyId”:unsigned long,“payload”:{“partId”:string,“mimeType”:string ,“filename”:string,“headers”:[{“name”:string,“value”:string}],“body”:users.messages.attachments资源,“parts”:[(MessagePart)]},“ sizeEstimate“:integer,”raw“:bytes}

--foo_bar_baz Content-Type:message / rfc822

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

HTTP / 1.1 200 Content-Type:application / json

{“id”:string,“threadId”:string,“labelIds”:[string],“snippet”:string,“historyId”:unsigned long,“payload”:{“partId”:string,“mimeType”:string ,“filename”:string,“headers”:[{“name”:string,“value”:string}],“body”:users.messages.attachments资源,“parts”:[(MessagePart)]},“ sizeEstimate“:integer,”raw“:bytes}

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

答案

基于SO related post,身体要求可以是这样的:

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

',

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

',

  'The actual message text goes here

',

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

',

   pngData, '

',

   '--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中编写的数字灵感的example code。此示例显示了如何使用Gmail API轻松发送带文件附件的电子邮件。

以上是关于在调用gmail api发送带附件的电子邮件(multipart)时,请求的正文如何?的主要内容,如果未能解决你的问题,请参考以下文章

GMAIL API 在 C# 中发送带附件的电子邮件

调用 gmail api 以发送带有附件(多部分)的电子邮件时,请求的正文如何?

使用 Gmail API 发送的邮件中缺少附件,但仅适用于收件人

在 gmail android 应用程序中发送带附件的电子邮件时出错

使用Gmail API时出现BrokenPipeError

在 Javascript 中使用 GMAIL API 发送带有附件文件(超过 10 MB)的电子邮件