emayili is a package for sending emails from R. The design goals are:
- works on all manner of SMTP servers and
- has minimal dependencies (or dependencies which are easily satisfied).
The package name is an adaption of the Zulu word for email, imeyili.
Simply install from GitHub.
remotes::install_github("datawookie/emayili")
First create a message object.
library(emayili)
library(magrittr)
email <- envelope()
Add addresses for the sender and recipient.
email <- email %>%
from("alice@yahoo.com") %>%
to("bob@google.com") %>%
cc("craig@google.com")
There are also bcc()
and reply()
functions for setting the Bcc
and
Reply-To
fields.
Add a subject.
email <- email %>% subject("This is a plain text message!")
Add a text body. You can use html()
to add an HTML body.
email <- email %>% text("Hello!")
Add an attachment.
email <- email %>% attachment("image.jpg")
Create a SMTP server object and send the message.
smtp <- server(host = "smtp.gmail.com",
port = 465,
username = "bob@gmail.com",
password = "bd40ef6d4a9413de9c1318a65cbae5d7")
smtp(email, verbose = TRUE)
If you’re trying to send email with a host that uses the STARTTLS security protocol (like Google Mail, Yahoo! or AOL), then it will most probably be blocked due to insufficient security. In order to circumvent this, you can grant access to less secure apps. See the links below for specifics:
There is a selection of other R packages which also send emails: