Allows the user to generate a friendly user interface for emails sending. The user can choose from the most popular free email services ('Gmail', 'Outlook', 'Yahoo') and his default email application. The package is a wrapper for the 'Mailtoui' 'JavaScript' library. See < https://mailtoui.com/#menu> for more information.
The goal of mailtoR is to implement a user interface for emails
sending within your Shiny application. It’s a wrapper for the
Mailtoui JavaScript library.
You can install the development version of mailtoR from Github with:
# install.packages("remotes")
remotes::install_github("feddelegrand7/mailtoR")
The mailtoR package is composed of two functions:
use_mailtoR(): put this function at the end of your Shiny ui,
it activates the features of the
Mailtoui library;
mailtoR(): use this function to create as many email links as you
want (see examples below)
library(shiny)
library(mailtoR)
ui <- fluidPage(
mailtoR(email = "[email protected]",
text = "Click here to send an email !"),
use_mailtoR()
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)

You can use many parameters to configure your email framework:
library(shiny)
library(mailtoR)
ui <- fluidPage(
mailtoR(email = "[email protected]",
text = "click here to send an email",
subject = "URGENT",
cc = c("[email protected]", "[email protected]"),
body = "Hi Michaels, it's David Wallace, your branch needs to make more sales !!!!!!!"),
use_mailtoR()
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)

Using the glue package, you can ever create a reproducible text report that you’ll embed within your email:
library(shiny)
library(mailtoR)
ui <- fluidPage(
mailtoR(email = "[email protected]",
text = "click here to send an email",
subject = "Useful Information",
body = glue::glue(
"
Hi,
Did you know that the mtcars dataset has {nrow(mtcars)} rows and {ncol(mtcars)} columns ?
Best regards.
"
)),
use_mailtoR()
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)

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