Modified tests to remove specific cases that no longer work in newer versions of R. (#310)
Fixed a problem where non-ASCII subject lines wouldn't render correctly on the Windows platform when using smtp_send()
(#241). (#242, thanks @shrektan!)
We replaced httr::POST()
with httr::RETRY()
when interacting with web APIs (Mailgun and Imgur). (#176, thank you @ataustin for contributing this PR.)
Made a correction to a format()
statement to comply with CRAN policy.
Updated the SMTP vignette with regard to Gmail app passwords (#282). (#283, thanks @jnolis!)
Email content width is now customizable in the blastula_email()
and compose_email()
functions. The default width is now increased to 1000px (#178).
Added the delete_credential_key()
and delete_all_credential_keys()
functions for better management of credential keys added to the system key-value store by the create_smtp_creds_key()
function (#173).
Added the creds_envvar()
credential helper function, which allows for SMTP password input via an environment variable (#159).
Fixed incorrect rendering in Outlook, due to wrong line endings used for quoted-printable encoding (thanks @jdbarillas for identifying the source of the issue in #153).
Fixed Unicode issues on Windows (#154).
Fixed buggy internal logic for decoding numeric HTML entities that represent non-ASCII characters.
This release contains fixes for R CMD check problems on CRAN test machines.
The blastula package has transitioned to using the curl package for SMTP mailing.
There are new functions for integrating blastula with R Markdown publishing on the RStudio Connect service. And sophisticated email bodies can be generated with HTML Blocks.
send_email_out()
has been removed; the smtp_send()
function is its replacement for sending email through an SMTP server
The revised smtp_send()
function internally uses curl::send_mail()
to send RFC2822 email message that blastula now independently generates; now, there is no need to download third-party binaries to send via SMTP
The smtp_send()
no longer offers text interpolation in { }
(which was provided by glue::glue()
) since this poses a security risk; email strings can be precomposed using glue::glue()
independently, or, by using c()
, paste()
/paste0
.
If an email message string contains Markdown text or HTML fragments, the md()
function must be used to perform rendering
The create_email_creds_file()
function has been removed in favor of a suite of functions for storing SMTP configuration info and credentials (create_smtp_creds_file()
, create_smtp_creds_key()
); the following credentials helper functions are available for retrieving or directly specifying configuration and credentials during sending: creds_file()
, creds_key()
, creds_anonymous()
, and creds()
The preview_email()
function has been removed as email objects created by compose_email()
now have a print method
The .preheader_text
argument in compose_email()
has been removed because of display issues in certain email clients
Added functions useful for scheduled email sending in RStudio Connect during publication of R Markdown documents: render_email()
, render_connect_email()
, attach_connect_email()
, blastula_email()
, suppress_scheduled_email()
, prepare_rsc_example_files()
The compose_email()
function now has a header
argument, allowing for content to populate the area above the body
Images embedded in email messages by using add_image()
are now properly encoded as Base64 in the outgoing message; more MIME types are supported thanks to functions provided by the mime package
The new add_imgur_image()
function allows us to deploy a local image to Imgur and retrieve the image tag (all in one step); this is useful if you want to use external images in an email message
We can now build sophisticated email messages with HTML blocks. With these responsive, higher-level components, we can create compose elements within the header
, body
, and footer
components. The functions now available for this system are: blocks()
, block_title()
, block_text()
, block_spacer()
, block_articles()
, and block_social_links()
. Two useful subcomponent functions are article()
and social_link()
.
Functions from the getPass
package are used internally to ask for a password whenever necessary during an interactive session
Functions from the keyring
package are used internally to aid in the storage and retrieval of SMTP config/credentials information in the system-wide key-value store (which is cross platform)
Moved local image URI data into list component, where references to image data are through CIDs
Implemented internal functions for Base64-encoding of local images, removing dependency on knitr
Removed dependencies on Java; reworked send_email_out()
uses a cross-platform binary to send email message via SMTP
Added the prepare_test_message()
function to create test email messages for testing purposes
Added a provider
argument to the create_email_creds_file()
function to more easily configure SMTP settings in a credentials file
Added the function add_readable_time()
to allow for easy insertion of a readable version of the present time in a message
Added functions to compose (compose_email()
), preview (preview_email()
), and send (send_email_out()
and send_by_mailgun()
) HTML email messages
Added helper functions for inserting HTML fragments into the message body (add_cta_button()
, add_image()
, and add_ggplot()
)
Added a function to help generate a secret credentials file for sending email through SMTP
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.