Class GmailDraft

GmailDraft

A user-created draft message in a user's Gmail account.

Methods

MethodReturn typeBrief description
deleteDraft()voidDeletes this draft message.
getId()StringGets the ID of this draft message.
getMessage()GmailMessageReturns a GmailMessage representing this draft.
getMessageId()StringReturns the ID of the GmailMessage representing this draft.
send()GmailMessageSends this draft email message.
update(recipient, subject, body)GmailDraftReplaces the contents of this draft message.
update(recipient, subject, body, options)GmailDraftReplaces the contents of this draft message using optional arguments.

Detailed documentation

deleteDraft()

Deletes this draft message.

 

 var draft = GmailApp.getDrafts()[0]; // The first draft message in the drafts folder
 draft.deleteDraft();
 draft.getMessage(); // Throws exception!
 

getId()

Gets the ID of this draft message.

 

 var draft = GmailApp.getDrafts()[0]; // The first draft message in the drafts folder
 var draftId = draft.getId();
 var draftById = GmailApp.getDraft(draftId);
 Logger.log(draft.getMessage().getSubject() == draftById.getMessage().getSubject());
 

Return

String — the draft ID


getMessage()

Returns a GmailMessage representing this draft.

 

 var draft = GmailApp.getDrafts()[0]; // The first draft message in the drafts folder
 var message = draft.getMessage();
 Logger.log(message.getSubject());
 

Return

GmailMessage — the message that represents the contents of this draft


getMessageId()

Returns the ID of the GmailMessage representing this draft.

 

 var draft = GmailApp.getDrafts()[0]; // The first draft message in the drafts folder
 var messageId = draft.getMessageId();
 Logger.log(messageId == draft.getMessage().getId());
 

Return

String — the message ID


send()

Sends this draft email message. The size of the email (including headers) is quota limited.

 

 var draft = GmailApp.getDrafts()[0]; // The first draft message in the drafts folder
 var msg = draft.send(); // Send it
 Logger.log(msg.getDate()); // Should be approximately the current timestamp
 

Return

GmailMessage — the newly sent message


update(recipient, subject, body)

Replaces the contents of this draft message. The size of the email (including headers) is quota limited.

 

 // The code below will update a draft email with the current date and time.
 var draft = GmailApp.getDrafts()[0]; // The first draft message in the drafts folder
 var now = new Date();
 draft.update("mike@example.com", "current time", "The time is: " + now.toString());
 

Parameters

NameTypeDescription
recipientStringcomma separated list of email addresses
subjectStringsubject of the email
bodyStringbody of the email

Return

GmailDraft — the newly updated draft

See also


update(recipient, subject, body, options)

Replaces the contents of this draft message using optional arguments. The email can contain plain text or an HTML body. The size of the email (including headers) is quota limited.

 

 // Update a draft email with a file from Google Drive attached as a PDF.
 var draft = GmailApp.getDrafts()[0]; // The first draft message in the drafts folder
 var file = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz');
 draft.update('mike@example.com', 'Attachment example', 'Please see attached file.', {
     attachments: [file.getAs(MimeType.PDF)],
     name: 'Automatic Emailer Script'
 });
 

Parameters

NameTypeDescription
recipientStringcomma separated list of email addresses
subjectStringsubject of the email
bodyStringbody of the email
optionsObjecta JavaScript object that specifies advanced parameters, as listed below

Advanced parameters

NameTypeDescription
attachmentsBlobSource[]an array of files to send with the email
bccStringa comma-separated list of email addresses to BCC
ccStringa comma-separated list of email addresses to CC
fromStringthe address that the email should be sent from, which must be one of the values returned by GmailApp.getAliases()
htmlBodyStringif set, devices capable of rendering HTML will use it instead of the required body argument; you can add an optional inlineImages field in HTML body if you have inlined images for your email
inlineImagesObjecta JavaScript object containing a mapping from image key (String) to image data (BlobSource); this assumes that the htmlBody parameter is used and contains references to these images in the format <img src="cid:imageKey" />
nameStringthe name of the sender of the email (default: the user's name)
replyToStringan email address to use as the default reply-to address (default: the user's email address)

Return

GmailDraft — the newly updated draft

See also

Send feedback about...

Apps Script
Apps Script