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.


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


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.


Send mail

Example code

Please replace your conditions.

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

sg_mail class

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

sendproject1 <- mail()
#> [1] "sg_mail" "list"
#> 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("", "") %>% 
  to("", "1 exam") %>% 
  to("", "2 exam") %>% 
  to("", "3 exam") %>% 
  subject("test mail title") %>% 
  body("hello world!")
#> SendGrid Mail - 
#> ✔   to     : cnt[3] 1 exam <>, 2 exam <to ...
#> ✔   from   : <>
#> ✔   subject: nchr[15] test mail title
#> ✔   content: nchr[12] hello world!


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




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