R: Send email

send_mail {curl} | R Documentation

## Send email

### Description

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 line breaks.

### Usage

    send_mail(
      mail_from,
      mail_rcpt,
      message,
      smtp_server = "smtp://localhost",
      use_ssl = c("try", "no", "force"),
      verbose = TRUE,
      ...
    )

### Arguments

`mail_from` | email address of the sender.
`mail_rcpt` | one or more recipient email addresses. Do not include names, these go into the `message` headers.
`message` | either a string or connection with (properly formatted) email message, including sender/recipient/subject headers. See example.
`smtp_server` | hostname or address of the SMTP server, or, an `smtp://` or `smtps://` URL. See "Specifying the server, port, and protocol" below.
`use_ssl` | 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.
`verbose` | print output
`...` | other options passed to `handle_setopt`. In most cases you will need to set a `username` and `password` to authenticate with the SMTP server.

### Specifying the server, port, and protocol

The `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.

### Encrypting connections via SMTPS or STARTTLS

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 `smtps://hostname:465` 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 `"try"` will opportunistically try to upgrade to a secure connection if the server supports it, and proceed as normal otherwise.

### Examples

    # Set sender and recipients (email addresses only)
    recipients <- readline("Enter your email address to receive test: ")
    sender <- 'test@noreply.com'

    # Full email message in RFC2822 format
    message <- 'From: "R (curl package)" <test@noreply.com>
    To: "Roger Recipient" <roger@noreply.com>
    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')

[Package curl version 4.3 Index]