mail_merge | R Documentation |
Merges columns from a data frame into a markdown document using the
glue::glue_data()
function. The markdown can contain a yaml header for
subject and cc line.
Note that only 'gmail' is supported at the moment, via gmailr::gm_send_message.
Before using mail_merge()
, you must be authenticated to the gmail service.
Use gmailr::gm_auth()
to authenticate prior to starting the mail merge.
mail_merge(
data,
message,
to_col = "email",
send = c("preview", "draft", "immediately"),
confirm = FALSE,
sleep_preview = 1,
sleep_send = 0.1
)
data |
A data frame or |
message |
A list with components |
to_col |
The name of the column in |
send |
A character string, one of:
|
confirm |
If |
sleep_preview |
If |
sleep_send |
If |
Returns a list for every message, consisting of:
msg
: The message in mime
format
id
: The gmailr
response id
type
: preview, draft or sent
success
: TRUE if the message was sent successfully
preview_mailmerge
## ---- input-data --------------------------------------------------------
dat <- data.frame(
email = c("friend@example.com", "foe@example.com"),
first_name = c("friend", "foe"),
thing = c("something good", "something bad"),
stringsAsFactors = FALSE
)
## ---- markdown-message --------------------------------------------------
msg <- '
---
subject: "**Hello, {first_name}**"
---
Hi, **{first_name}**
I am writing to tell you about **{thing}**.
{if (first_name == "friend") "Regards" else ""}
Me
'
## ---- mail-merge --------------------------------------------------------
dat %>%
mail_merge(msg)
if (interactive()) {
dat %>%
mail_merge(msg) %>%
print()
}
## ---- display shiny gadget ----------------------------------------------
if (interactive()) {
dat %>%
mail_merge(msg) %>%
preview_mailmerge()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.