Modules@robinpath/gmail
gmail

@robinpath/gmail

0.1.1Node.jsPublic

Gmail module for RobinPath.

Gmail

Gmail module for RobinPath.

Package: @robinpath/gmail | Category: Productivity | Type: Integration

Authentication

gmail.setCredentials "your-credentials"

Call this once at the start of your script before using any other function. Credentials persist for the duration of the script execution.

Use Cases

Use the gmail module when you need to:

  • List/search messages -- Use gmail.listMessages to perform this operation
  • Get message details -- Use gmail.getMessage to perform this operation
  • Send a plain text email -- Use gmail.sendEmail to perform this operation
  • Move message to trash -- Use gmail.trashMessage to perform this operation
  • Remove from trash -- Use gmail.untrashMessage to perform this operation

Quick Reference

FunctionDescriptionReturns
setCredentialsConfigure Gmail OAuth2 credentials.object
listMessagesList/search messagesobject
getMessageGet message detailsobject
sendEmailSend a plain text emailobject
trashMessageMove message to trashobject
untrashMessageRemove from trashobject
deleteMessagePermanently delete messageobject
modifyLabelsAdd/remove labelsobject
markAsReadMark as readobject
markAsUnreadMark as unreadobject
listLabelsList all labelsobject
createLabelCreate a labelobject
createDraftCreate a draftobject
listDraftsList draftsobject
sendDraftSend a draftobject
deleteDraftDelete a draftobject
getProfileGet user profileobject

Functions

setCredentials

Configure Gmail OAuth2 credentials.

Module: gmail | Returns: object -- API response.

gmail.setCredentials
ParameterTypeRequiredDescription
accessTokenstringYesOAuth2 access token

listMessages

List/search messages

Module: gmail | Returns: object -- API response.

gmail.listMessages
ParameterTypeRequiredDescription
querystringNoSearch query
maxResultsnumberNoMax results

getMessage

Get message details

Module: gmail | Returns: object -- API response.

gmail.getMessage
ParameterTypeRequiredDescription
messageIdstringYesMessage ID

sendEmail

Send a plain text email

Module: gmail | Returns: object -- API response.

gmail.sendEmail
ParameterTypeRequiredDescription
tostringYesRecipient
subjectstringYesSubject
bodystringYesBody

trashMessage

Move message to trash

Module: gmail | Returns: object -- API response.

gmail.trashMessage
ParameterTypeRequiredDescription
messageIdstringYesMessage ID

untrashMessage

Remove from trash

Module: gmail | Returns: object -- API response.

gmail.untrashMessage
ParameterTypeRequiredDescription
messageIdstringYesMessage ID

deleteMessage

Permanently delete message

Module: gmail | Returns: object -- API response.

gmail.deleteMessage
ParameterTypeRequiredDescription
messageIdstringYesMessage ID

modifyLabels

Add/remove labels

Module: gmail | Returns: object -- API response.

gmail.modifyLabels
ParameterTypeRequiredDescription
messageIdstringYesMessage ID
addLabelsobjectNoLabels to add
removeLabelsobjectNoLabels to remove

markAsRead

Mark as read

Module: gmail | Returns: object -- API response.

gmail.markAsRead
ParameterTypeRequiredDescription
messageIdstringYesMessage ID

markAsUnread

Mark as unread

Module: gmail | Returns: object -- API response.

gmail.markAsUnread
ParameterTypeRequiredDescription
messageIdstringYesMessage ID

listLabels

List all labels

Module: gmail | Returns: object -- API response.

gmail.listLabels
ParameterTypeRequiredDescription
(none)NoCall with no arguments

createLabel

Create a label

Module: gmail | Returns: object -- API response.

gmail.createLabel
ParameterTypeRequiredDescription
namestringYesLabel name

createDraft

Create a draft

Module: gmail | Returns: object -- API response.

gmail.createDraft
ParameterTypeRequiredDescription
tostringYesRecipient
subjectstringYesSubject
bodystringYesBody

listDrafts

List drafts

Module: gmail | Returns: object -- API response.

gmail.listDrafts
ParameterTypeRequiredDescription
maxResultsnumberNoMax results

sendDraft

Send a draft

Module: gmail | Returns: object -- API response.

gmail.sendDraft
ParameterTypeRequiredDescription
draftIdstringYesDraft ID

deleteDraft

Delete a draft

Module: gmail | Returns: object -- API response.

gmail.deleteDraft
ParameterTypeRequiredDescription
draftIdstringYesDraft ID

getProfile

Get user profile

Module: gmail | Returns: object -- API response.

gmail.getProfile
ParameterTypeRequiredDescription
(none)NoCall with no arguments

Error Handling

All functions throw on failure. Common errors:

ErrorCause
Gmail API error (${res.status}): ${t}Check the error message for details
gmail.setCredentials requires accessToken.Check the error message for details
getMessage requires messageIdCheck the error message for details
sendEmail requires to, subject, bodyCheck the error message for details
trashMessage requires messageIdCheck the error message for details
untrashMessage requires messageIdCheck the error message for details
deleteMessage requires messageIdCheck the error message for details
modifyLabels requires messageIdCheck the error message for details
@desc "List messages and validate result"
do
  set $result as gmail.listMessages
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. List and iterate Messages

Retrieve all items and loop through them.

@desc "Setup authentication"
do
  gmail.setCredentials $token
enddo

@desc "List messages and iterate results"
do
  set $result as gmail.listMessages
  each $item in $result
    print $item
  end
enddo

2. Create a new item with sendEmail

Create a new resource and capture the result.

@desc "Setup authentication"
do
  gmail.setCredentials $token
enddo

@desc "Send email"
do
  set $result as gmail.sendEmail
  print "Created: " + $result
enddo

3. Create and update workflow

Create an item and then update it.

@desc "Setup authentication"
do
  gmail.setCredentials $token
enddo

@desc "Send email and modify labels"
do
  set $created as gmail.sendEmail
  # Update the created item
  gmail.modifyLabels
enddo

4. Check before creating

List existing items and only create if needed.

@desc "Setup authentication"
do
  gmail.setCredentials $token
enddo

@desc "List messages and send email"
do
  set $existing as gmail.listMessages
  if $existing == null
    gmail.sendEmail
    print "Item created"
  else
    print "Item already exists"
  end
enddo

5. Multi-step Gmail workflow

Chain multiple gmail operations together.

@desc "Setup authentication"
do
  gmail.setCredentials $token
enddo

@desc "List messages, get message, and more"
do
  set $r_listMessages as gmail.listMessages
  set $r_getMessage as gmail.getMessage
  set $r_sendEmail as gmail.sendEmail
  print "All operations complete"
enddo

6. Safe listMessages with validation

Check results before proceeding.

@desc "Setup authentication"
do
  gmail.setCredentials $token
enddo

@desc "List messages and validate result"
do
  set $result as gmail.listMessages
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • google-sheets -- Google Sheets module for complementary functionality
  • google-calendar -- Google Calendar module for complementary functionality
  • google-contacts -- Google Contacts module for complementary functionality
  • google-forms -- Google Forms module for complementary functionality
  • outlook -- Outlook module for complementary functionality

Versions (1)

VersionTagPublished
0.1.1latest1 months ago
Install
$ robinpath add @robinpath/gmail

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.1
LicenseMIT
Unpacked Size5.3 KB
Versions1
Weekly Downloads26
Total Downloads26
Stars0
Last Publish1 months ago
Created1 months ago

Category

productivity