This example shows how to create email copies in Gmail with Google Apps Script and the Gmail API. The requires requires authorization with the scope https://mail.google.com/
for reading Gmail drafts and composing new ones.
The uploadType is set to media and that will create the Gmail draft in a single HTTP request. However, if you are create a draft that includes big attachment, you may have to set the upload type as resumable to create the draft in at least two requests.
function duplicateGmailDrafts(count, draftId) {
try {
var draft = GmailApp.getMessageById(draftId);
if (draft === null) {
return 'Sorry, the draft message was not found. Please reload this page and try again.';
}
var gmailAPI = 'https://www.googleapis.com/upload/gmail/v1/users/me/drafts?uploadType=media';
var params = {
method: 'POST',
contentType: 'message/rfc822',
muteHttpExceptions: true,
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
},
payload: draft.getRawContent(),
};
for (var i = 0; i < count; i++) {
UrlFetchApp.fetch(gmailAPI, params);
}
return 'Drafts Created';
} catch (f) {
return 'Error: ' + f.toString();
}
}