sendgridr

Lifecycle: experimental R-CMD-check test-coverage

The goal of sendgridr is to mail using r with sendgrid service that provides free 100 mail per day forever.

Installation

You can install the developing version of sendgridr from Github with:

remotes::install_github("mrchypark/sendgridr")

Set API key for authentication

You can set api key env value name SENDGRID_API. auth_check() function check whether key named SENDGRID_API is set or not, whether key is dummy or not, whether key works or not. auth_set() function ask some questions and open browser for create api key, open .Renviron for set SENDGRID_API value.

auth_check()
auth_set()

Send mail

Example code

Please replace your conditions.

mail() %>% 
  from("example1@mail.com", "example name for display") %>% 
  to("example2@mail.com", "example name for display 2") %>% 
  subject("test mail title") %>% 
  body("hello world!")  %>% 
  ## attachments is optional
  attachments("report.html") %>% 
  send()

sg_mail class

mail() function create sg_mail class object and also list. sg_mail class only has print method.

sendproject1 <- mail()
class(sendproject1)
#> [1] "sg_mail" "list"
sendproject1
#> SendGrid Mail - 
#> ✖   to     : (required)
#> ✖   from   : (required)
#> ✖   subject: (required)
#> ✖   content: (required)

to, from, subject, body are required. cc, bcc, attachments are optional.

multi- setting using inline

to, cc, bcc, attachments functions are able to set multi values.

mail() %>% 
  from("example1@mail.com", "toexam@mail.com") %>% 
  to("toexam1@mail.com", "1 exam") %>% 
  to("toexam2@mail.com", "2 exam") %>% 
  to("toexam3@mail.com", "3 exam") %>% 
  subject("test mail title") %>% 
  body("hello world!")
#> SendGrid Mail - 
#> ✔   to     : cnt[3] 1 exam <toexam1@mail.com>, 2 exam <to ...
#> ✔   from   : toexam@mail.com <example1@mail.com>
#> ✔   subject: nchr[15] test mail title
#> ✔   content: nchr[12] hello world!

TODO

Code of Conduct

Please note that the sendgridr project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Jinseob Kim

🤔

Carl Ganz

🤔

peter-bastian

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!