AWS SES client for Cloudflare Workers. 1:1 mapping of AWS SES API based on aws4fetch.
Install the package:
# ✨ Auto-detect (supports npm, yarn, pnpm, deno and bun)
npx nypm install workers-ses
# or
npm install workers-ses
# or
yarn add workers-ses
# or
pnpm add workers-ses
# or
bun add workers-ses
Import:
ESM (Node.js, Bun, Deno)
import {} from 'pkg'
CDN (Deno, Bun and Browsers)
import {} from 'https://esm.sh/pkg'
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: '<h1>Hello!</h1><p>This is an <strong>HTML email</strong> sent using workers-ses library.</p>',
},
},
},
}
// 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.
local development
Published under the MIT license.
Made by community 💛
🤖 auto updated with automd