Lifecycle: experimental R-CMD-check test-coverage CRAN status metacran downloads

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



You can install the released version of sendgridr from CRAN with:



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

# install.packages("remotes")

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 - 
#> x   from   : (required)
#> x   to     : (required)
#> x   subject: (required)
#> x   content: (required)
#> v   attach : (optional)

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 -
#> v   from   : 
#> v   to     : cnt[3] 1 exam <>, 2 exam <toexam2 ...
#> v   subject: nchr[15] test mail title
#> v   content: nchr[12] hello world!
#> v   attach : (optional)


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):

Keon-Woong Moon


Jinseob Kim


Carl Ganz




Curtis Petersen

🤔 👀

Amanda Dobbyn


Emanuele Guidotti

📖 ⚠️ 🐛 💻

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