AWS SES client for Cloudflare Workers
npm install workers-ses

AWS SES client for Cloudflare Workers. 1:1 mapping of AWS SES API based on aws4fetch.
Install the package:
``sh✨ Auto-detect (supports npm, yarn, pnpm, deno and bun)
npx nypm install workers-ses
npm install workers-ses
yarn add workers-ses
pnpm add workers-ses
bun add workers-ses
`
Import:
ESM (Node.js, Bun, Deno)
`js`
import {} from 'pkg'
CDN (Deno, Bun and Browsers)
`js`
import {} from 'https://esm.sh/pkg'
`js
import { SESClient, SendEmailCommand } from 'workers-ses'
// Configure the SES client
const config = {
region: 'us-east-1', // Your AWS region
credentials: {
accessKeyId: 'YOUR_ACCESS_KEY_ID',
secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
},
}
// Initialize the SES client
const sesClient = new SESClient(config)
// Define email parameters
const emailParams = {
Source: 'sender@example.com', // Must be a verified email address
Destination: {
ToAddresses: ['recipient@example.com'],
// Optional: CcAddresses and BccAddresses
// CcAddresses: ["cc@example.com"],
// BccAddresses: ["bcc@example.com"],
},
Message: {
Subject: {
Data: 'Hello from Workers SES!',
},
Body: {
Text: {
Data: 'This is a plain text email sent using workers-ses library.',
},
Html: {
Data: '
This is an HTML email sent using workers-ses library.
',// Send the email
try {
const command = new SendEmailCommand(emailParams)
const result = await sesClient.send(command)
console.log('Email sent successfully!')
console.log('Message ID:', result.MessageId)
} catch (error) {
console.error('Error sending email:', error)
}
`
- region: AWS region where your SES service is configured (e.g., us-east-1, eu-west-1)
- credentials: AWS credentials with SES permissions
- accessKeyId: Your AWS access key ID
- secretAccessKey: Your AWS secret access key
- Source: The sender's email address (must be verified in AWS SES)
- Destination: Recipient information
- ToAddresses: Array of recipient email addresses
- CcAddresses: (Optional) Array of CC recipient email addresses
- BccAddresses: (Optional) Array of BCC recipient email addresses
- Message: Email content
- Subject.Data: Email subject line
- Body.Text.Data: Plain text version of the email
- Body.Html.Data: HTML version of the email
> Note: Before sending emails, make sure your sender email address is verified in AWS SES, and if you're in the SES sandbox, recipient addresses must also be verified.
- Clone this repository
- Install latest LTS version of Node.js
- Enable Corepack using corepack enablepnpm install
- Install dependencies using pnpm dev`
- Run interactive tests using
Published under the MIT license.
Made by community 💛
---
_🤖 auto updated with automd_