emayili
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.
Installation
Simply install from GitHub.
remotes::install_github("datawookie/emayili")
Usage
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)
You can identify emails which have been sent using {emayili}
by the
presence of an X-Mailer
header which includes both the package name
and version.
Using STARTTLS
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:
Debugging
To see the guts of the message as passed to the SMTP server, do the following:
cat(emayili:::message(email))
Similar Packages
There is a selection of other R packages which also send emails: