Use the curl SMTP client to send an email. The
message argument must be
properly formatted RFC2822 email message with From/To/Subject headers and CRLF
send_mail( mail_from, mail_rcpt, message, smtp_server = "smtp://localhost", use_ssl = c("try", "no", "force"), verbose = TRUE, ... )
email address of the sender.
one or more recipient email addresses. Do not include names,
these go into the
either a string or connection with (properly formatted) email message, including sender/recipient/subject headers. See example.
hostname or address of the SMTP server, or, an
Request to upgrade the connection to SSL using the STARTTLS command, see CURLOPT_USE_SSL for details. Default will try to SSL, proceed as normal otherwise.
other options passed to
smtp_server argument takes a hostname, or an SMTP URL:
mail.example.com - hostname only
mail.example.com:587 - hostname and port
smtp://mail.example.com - protocol and hostname
smtp://mail.example.com:587 - full SMTP URL
smtps://mail.example.com:465 - full SMTPS URL
By default, the port will be 25, unless
smtps:// is specified--then
the default will be 465 instead.
There are two different ways in which SMTP can be encrypted: SMTPS servers run on a port which only accepts encrypted connections, similar to HTTPS. Alternatively, a regular insecure smtp connection can be "upgraded" to a secure TLS connection using the STARTTLS command. It is important to know which method your server expects.
If your smtp server listens on port 465, then use a
URL. The SMTPS protocol guarantees that TLS will be used to protect
all communications from the start.
If your email server listens on port 25 or 587, use an
smtp:// URL in
combination with the
use_ssl parameter to control if the connection
should be upgraded with STARTTLS. The default value
opportunistically try to upgrade to a secure connection if the server
supports it, and proceed as normal otherwise.
# Set sender and recipients (email addresses only) recipients <- readline("Enter your email address to receive test: ")#> Enter your email address to receive test:sender <- '[email protected]' # Full email message in RFC2822 format message <- 'From: "R (curl package)" <[email protected]> To: "Roger Recipient" <[email protected]> Subject: Hello R user! Dear R user, I am sending this email using curl.' # Send the email send_mail(sender, recipients, message, smtp_server = 'smtps://smtp.gmail.com', username = 'curlpackage', password = 'qyyjddvphjsrbnlm')#> Error in curl_fetch_memory(smtp_server, handle = h): RCPT failed: 555