# Email

This endpoint allows you to start sending emails through MailerSend Email API.

# Send an email

This endpoint allows you to send an asynchronous email. It returns the status of the email sent with a X-Message-Id that can be used to continuously query for the status using the Email API.

Send an email using this POST request:

POST https://api.mailersend.com/v1/email

# Request Body

{
  "from": {
    "email": "hello@mailersend.com",
    "name": "MailerSend"
  },
  "to": [
    {
      "email": "john@mailersend.com",
      "name": "John Mailer"
    }
  ],
  "subject": "Hello from {$company}!",
  "text": "This is just a friendly hello from your friends at {$company}.",
  "html": "<b>This is just a friendly hello from your friends at {$company}.</b>",
  "variables": [
    {
      "email": "john@mailersend.com",
      "substitutions": [
        {
          "var": "company",
          "value": "MailerSend"
        }
      ]
    }
  ]
}

# Request parameters

JSON parameters are provided in dot notation

JSON parameter Type Required Limitations Details
from object yes * not required if template_id is present and template has default sender set
from.email string yes * Must be a verified domain not required if template_id is present and template has default sender set
from.name string no from.email will be used if not provided or if template_id is present with default values, the default subject from that will be used
to object[] yes Min 1, max 50
to.*.email string yes
to.*.name string no The name of the recipient. May not contain ; or ,
cc object[] no Max 10
cc.*.email string yes
cc.*.name string no The name of the CC recipient. May not contain ; or ,
bcc object[] no Max 10
bcc.*.email string yes
bcc.*.name string no The name of the BCC recipient. May not contain ; or ,
reply_to.email string no
reply_to.name string no
subject string yes * not required if template_id is present and template has default subject set
text string yes * Email represented in a text (text/plain) format. * Only required if there's no template_id present.
html string yes * Email represented in HTML (text/html) format. * Only required if there's no template_id present.
attachments object[] no
attachments.*.content string yes Base64 encoded content of the attachment
attachments.*.filename string yes
attachments.*.id string no Can be used in content as an <img/> tag. TBD
template_id string no
tags string[] no Limit is max 5 tags
variables object[] no These will be replaced in the email content using {$var} format. Can be used in the subject, html, text fields.
variables.*.email string yes Email address that substitutions will be applied to. More about simple personalization
variables.*.substitutions object[] yes
variables.*.substitutions.*.var string yes Name of the variable, will replace {$var} in the subject, html, text fields.
variables.*.substitutions.*.value string yes Value to be replaced, based on the variables.*.substitutions.*.var name
personalization object[] no It allows using a personalization in {{ var }} syntax. Can be used in the subject, html, text fields. More about advanced personalziation
personalization.*.email string yes Email address that personalization will be applied to.
personalization.*.data object[] yes Object with key: value pairs. Values will be added to your template using {{ key }} syntax.

# Responses

# Sending queued

Response Code: 202 Accepted
Response Headers:
	Content-Type: text/plain; charset=utf-8
	X-Message-Id: 5e42957d51f1d94a1070a733
Response Body: [EMPTY]

# Sending paused

Response Code: 202 Accepted
Response Headers:
	Content-Type: text/plain; charset=utf-8
	X-Message-Id: 5e42957d51f1d94a1070a733
  X-Send-Paused: true
Response Body: [EMPTY]

# Validation error

Response Code: 422 Unprocessable Entity
Response Headers:
	Content-Type: application/json
{
  "message": "The given data was invalid.",
  "errors": {
    "from.email": [
      "The from.email must be verified."
    ]
  }
}

See - Validations errors

# Validation warning

Response Code: 202 Accepted
Response Headers:
	Content-Type: application/json
	X-Message-Id: 5e42957d51f1d94a1070a733
{
  "message": "There are some warnings for your request.",
  "warnings": [
  	{
  		"type": "SOME_SUPPRESSED",
      "warning": "Some of the recipients have been suppressed."
  		"recipients": [
    		{
      		"email": "suppressed@recipient.com",
      		"name": "Suppressed Recipient",
      		"reasons": ["blocklisted"]
    		}
  		]
  	}
  ]
}
Last updated: 7/23/2021, 9:49:45 AM