Send Email HTML

In this code snippet you learn how to send an Email html message using the Messages API.

Example

Find the description for all variables used in each code snippet below:

KeyDescription
VONAGE_APPLICATION_ID

The Vonage Application ID.

VONAGE_PRIVATE_KEY_PATH

Private key path.

MESSAGES_API_URL

There are two versions of the API, each with their own endpoints. For production the previous Messages API endpoint was https://api.nexmo.com/v0.1/messages, the new one is https://api.nexmo.com/v1/messages. For sandbox testing the Messages API endpoint is https://messages-sandbox.nexmo.com/v0.1/messages or https://messages-sandbox.nexmo.com/v1/messages, depending on which version you have set in the sandbox dashboard.

JWT

Used to authenticate your request. See Authentication for more information, including how to generate a JWT.

MESSAGES_TO_EMAIL

The recipient email address for the Email message.

EMAIL_SENDER_ID

Your verified sender email address for the Email channel.

NOTE: The from address must use a verified sender identity for your Email channel setup.

Prerequisites

If you do not have an application you can create one. Make sure you also configure your webhooks.

Write the code

Add the following to send-email-html.sh:

curl -X POST "${MESSAGES_API_URL}" \
  -H "Authorization: Bearer "$JWT\
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d $'{
    "to": "'${MESSAGES_TO_EMAIL}'",
    "from": "'${EMAIL_SENDER_ID}'",
    "channel": "email",
    "message_type": "html",
    "html": {
      "body": "<h1>Hello from Vonage</h1><p>This is an Email HTML message sent via the Vonage Messages API.</p>"
    },
    "email": {
      "subject": "Your HTML message subject"
    }
  }'

View full source

Run your code

Save this file to your machine and run it:

bash send-email-html.sh

Try it out

When you run the code an HTML email is sent to the destination email address.