Learn R Programming

⚠️There's a newer version (1.0.1) of this package.Take me there.

gmailr

Exposing the Gmail API from R.

Features

  • retrieve data from your email
    • drafts: my_drafts = drafts()
    • history: my_history = history(start_num)
    • labels: my_labels = labels()
    • messages: my_messages = messages("search query")
    • threads: my_threads = threads("search query")
  • Create and send emails and drafts: see sending_messages vignette
  • manage email labels programmatically: modify_thread(thread_id, add_labels=c("label_1"), remove_labels=c("label_2"))
  • put things in the gmail trash
    • messages: trash_message(message_id)
    • threads: trash_thread(thread_id)
  • take things out of the gmail trash
    • messages: untrash_message(message_id)
    • threads: untrash_thread(thread_id)
  • delete directly without using the trash
    • messages: delete_message(message_id)
    • threads: delete_thread(thread_id)

Setup

By default gmailr will use a global project. However if you are going to be doing a heavy user and will do a lot of queries please setup your own project with the steps below.

  • Register a new project at https://console.cloud.google.com

  • Navigate to APIs

    • Switch the Gmail API status to On, and other API status to Off
  • Navigate to APIs & auth->Consent screen

    • Name your application
    • Select an email address for the application
    • Other fields can be left blank
  • Navigate to APIs & auth->Credentials

    • Create a new client ID
      • Application Type: Installed Application
      • Installed Application Type: Other
    • Download the Client ID JSON - can be renamed!
  • Use the downloaded JSON file as input to gmail_auth()

    ```R
    gmail_auth('file.json')
    ```

Future Work

  • More unit tests and better coverage
  • More (complicated) examples
  • Email statistics
  • Programmatic emailing
  • Returning data frames in addition to native Gmail API objects which are usually a nested list.
  • Support all the formats of users.messages:get

Examples

Copy Link

Version

Install

install.packages('gmailr')

Monthly Downloads

30,832

Version

0.7.1

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Jim Hester

Last Published

April 12th, 2016

Functions in gmailr (0.7.1)

create_label

Create a new label
clear_token

Clear the current oauth token
mime

Create a mime formatted message object
create_draft

Create a draft from a mime message
trash_message

Send a single message to the trash
save_attachments

Save attachments to a message
quoted_printable_encode

Encode text using quoted printable
drafts

Get a list of drafts
insert_message

Insert a message into the gmail mailbox from a mime message
labels

Get a list of all labels
body

Get the body text of a message or draft
delete_thread

Permanently delete a single thread.
trash_thread

Send a single thread to the trash
threads

Get a list of threads
delete_label

Permanently delete a label
send_message

Send a message from a mime message
use_secret_file

Use information from a secret file
save_attachment

save the attachment to a file
history

Retrieve change history for the inbox
id

Get the id of a gmailr object
gmailr

gmailr makes gmail access easy.
to

Methods to get values from message or drafts
thread

Get a single thread
untrash_message

Remove a single message from the trash
messages

Get a list of messages
message

Get a single message
modify_thread

Modify the labels on a thread
%>%

Pipe statements
import_message

Import a message into the gmail mailbox from a mime message
label

Get a specific label
attachment

Retrieve an attachment to a message
gmail_auth

Setup oauth authentication for your gmail
as.character.mime

Convert a mime object to character representation
untrash_thread

Remove a single thread from the trash.
delete_message

Permanently delete a single message
draft

Get a single draft
update_label

Update a existing label.
send_draft

Send a draft
last_response

Response from the last query
modify_message

Modify the labels on a message
%>%

Pipe statements