Adding attachment to Gmail draft with Google Apps Script and Gmail API

前端 未结 1 1955
一个人的身影
一个人的身影 2021-01-24 00:53

I try to automatically attach a file from my Google Drive (so ideally with the file id) in my Gmail draft created with Google Apps Script and GMail API. I use the syntax below.

相关标签:
1条回答
  • 2021-01-24 01:40

    How about following sample script? This is a very simple script for attaching a file to a draft. So please modify this to your environment.

    In order to use this script, please enable Gmail API at API console. And please import file ID to fileId in the script.

    Sample script :

    function createDraft() {
      var fileId = "### file id ###";
      var file = DriveApp.getFileById(fileId);
      var forScope = GmailApp.getInboxUnreadCount();
      var htmlBody = 'Howzit';
      var raw = 
          'Subject: Howzit\r\n' + 
          'To: aa@bb.cc\r\n' +
          'Content-Type: multipart/mixed; boundary=##########\r\n\r\n' +
          '--##########\r\n' +
          'Content-Type: text/html; charset=UTF-8\r\n\r\n' + htmlBody + '\r\n' +
          '--##########\r\n' +
          'Content-Type: ' + file.getMimeType() + '; charset=UTF-8; name="' + file.getName() + '"\r\n' +
          'Content-Disposition: attachment; filename="' + file.getName() + '"\r\n' +
          'Content-Transfer-Encoding: base64\r\n\r\n' + Utilities.base64Encode(file.getBlob().getBytes()) +
          '\r\n--##########\r\n';
      var draftBody = Utilities.base64EncodeWebSafe(raw, Utilities.Charset.UTF_8);
      var params = {
        method:"post",
        contentType: "application/json",
        headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
        muteHttpExceptions: true,
        payload: JSON.stringify({"message": {"raw": draftBody}})
      };
      var resp = UrlFetchApp.fetch("https://www.googleapis.com/gmail/v1/users/me/drafts", params);
      Logger.log(resp)
    }
    

    Result :

    {
      "id": "#####",
      "message": {
        "id": "#####",
        "threadId": "#####",
        "labelIds": [
          "DRAFT"
        ]
      }
    }
    

    Image :

    0 讨论(0)
提交回复
热议问题