fastify-ses-mailer
v1.0.1
Published
A Fastify plugin for sending emails via AWS SES (Simple Email Service)
Maintainers
Readme
fastify-ses-mailer
Fastify plugin for sending emails via AWS SES using AWS SDK v3.
Why?
Sending emails with AWS SES in Fastify requires boilerplate setup - importing the SDK, configuring clients, handling credentials, and managing multiple send methods. This plugin simplifies it by:
- Zero boilerplate - One-line plugin registration
- AWS SDK v3 - Modern, tree-shakeable, smaller bundle size
- Automatic credentials - Uses AWS credential chain (env vars, IAM roles, SSO)
- Three methods - Simple send, raw MIME (attachments), bulk templated emails
- TypeScript support - Full type definitions included
- Production ready - Validated inputs, tested, linted
Installation
npm install fastify-ses-mailerPeer dependency: Requires Fastify v5
Usage
import Fastify from 'fastify'
import fastifySES from 'fastify-ses-mailer'
const fastify = Fastify()
await fastify.register(fastifySES, {
region: 'us-east-1',
defaultFrom: '[email protected]'
})
// Send email
const result = await fastify.ses.send({
to: '[email protected]',
subject: 'Hello',
html: '<h1>Hi!</h1>',
text: 'Hi!'
})
console.log('Message ID:', result.MessageId)Options:
from(string, optional): Sender emailto(string | string[]): Recipient(s)subject(string): Email subjecthtml(string, optional): HTML bodytext(string, optional): Text body
For sendRaw() (attachments) and sendBulk() (templated bulk emails), see examples/example.js.
Configuration
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| region | string | process.env.AWS_REGION or 'us-east-1' | AWS region |
| defaultFrom | string | process.env.SES_FROM_EMAIL | Default sender email |
AWS Credentials
Set environment variables:
export AWS_REGION=us-east-1
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret
export [email protected]Or use IAM roles, ~/.aws/credentials, or AWS SSO.
Example
See examples/example.js for a complete working example.
npm run exampleTesting
npm testTests verify plugin registration, parameter validation, and error handling. All tests run without making actual AWS API calls.
Requirements
- Node.js 18+
- Fastify v5
- AWS SES verified sender
License
MIT © Karan Hotwani
Links
- npm: https://www.npmjs.com/package/fastify-ses-mailer
- GitHub: https://github.com/KaranHotwani/fastify-ses-mailer
