Skip to content
Start here

Send an email

client.emailSending.send(EmailSendingSendParams { account_id, body } params, RequestOptionsoptions?): EmailSendingSendResponse { delivered, message_id, permanent_bounces, 2 more }
POST/accounts/{account_id}/email/sending/send

Send an email for the specified account using the structured builder. Provide the sender, recipients, subject, and at least one of text or html; attachments are optional.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
params: EmailSendingSendParams { account_id, body }
account_id: string

Path param: Identifier of the account.

body: Body

Body param

ReturnsExpand Collapse
EmailSendingSendResponse { delivered, message_id, permanent_bounces, 2 more }
delivered: Array<string>

Email addresses to which the message was delivered immediately.

message_id: string

Message ID of the sent email.

permanent_bounces: Array<string>

Email addresses that permanently bounced.

queued: Array<string>

Email addresses for which delivery was queued for later.

suppressed_recipients: Array<string>

Email addresses dropped because they are on the suppression list. Returned when suppressed-recipient dropping is enabled for the sending subdomain; otherwise the request fails instead.

Send an email

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const response = await client.emailSending.send({
  account_id: 'account_id',
  body: {
    attachments: [
      {
        content: 'JVBERi0xLjQK...',
        disposition: 'attachment',
        filename: 'report.pdf',
        type: 'application/pdf',
      },
    ],
    from: 'sender@example.com',
    html: '<h1>Hello</h1><p>Please find your report attached.</p>',
    subject: 'Monthly Report',
    text: 'Hello\n\nPlease find your report attached.',
    to: ['recipient@example.com'],
  },
});

console.log(response.message_id);
{
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "delivered": [
      "recipient@example.com"
    ],
    "message_id": "<aB3xK9mP2qR5sT8uV0wX1yZ4cD6fG7hJ9kL0@example.com>",
    "permanent_bounces": [
      "string"
    ],
    "queued": [
      "string"
    ],
    "suppressed_recipients": [
      "string"
    ]
  },
  "success": true,
  "result_info": {
    "count": 0,
    "per_page": 0,
    "total_count": 0,
    "cursor": "cursor",
    "page": 0
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "delivered": [
      "recipient@example.com"
    ],
    "message_id": "<aB3xK9mP2qR5sT8uV0wX1yZ4cD6fG7hJ9kL0@example.com>",
    "permanent_bounces": [
      "string"
    ],
    "queued": [
      "string"
    ],
    "suppressed_recipients": [
      "string"
    ]
  },
  "success": true,
  "result_info": {
    "count": 0,
    "per_page": 0,
    "total_count": 0,
    "cursor": "cursor",
    "page": 0
  }
}