flexi-mailer
v1.0.8
Published
A versatile email service supporting multiple providers, including SMTP, AWS SES, Mailgun, Postmark, and SendGrid.
Downloads
23
Maintainers
Readme
flexi-mailer
A versatile email service supporting multiple providers, including SMTP, AWS SES, Mailgun, Postmark, and SendGrid.
Features
- Supports multiple email providers
- Easy to configure with environment variables
- Modular and extensible design
- TypeScript support
Installation
To install the package, use npm:
npm install flexi-mailer
Usage
First, set up your environment variables for the providers you plan to use. You can do this by creating a .env
file in your project root:
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=your_smtp_user
SMTP_PASS=your_smtp_pass
[email protected]
AWS_REGION=us-east-1
[email protected]
MAILGUN_API_KEY=your_mailgun_api_key
MAILGUN_DOMAIN=your_mailgun_domain
[email protected]
POSTMARK_API_KEY=your_postmark_api_key
[email protected]
SENDGRID_API_KEY=your_sendgrid_api_key
[email protected]
Example
import { EmailService, ProviderType } from 'flexi-mailer';
// Create an instance of EmailService with the desired provider
const emailService = new EmailService(ProviderType.smtp);
// Send an email
emailService
.sendEmail('[email protected]', 'Test Subject', 'Test Body')
.then(() => console.log('Email sent successfully'))
.catch((error) => console.error('Failed to send email:', error));
Supported Providers
- SMTP:
ProviderType.smtp
- AWS SES:
ProviderType.ses
- Mailgun:
ProviderType.mailGun
- Postmark:
ProviderType.postmark
- SendGrid:
ProviderType.sendGrid
Environment Variables
SMTP
SMTP_HOST
: SMTP server host.SMTP_PORT
: SMTP server port.SMTP_USER
: SMTP server username.SMTP_PASS
: SMTP server password.SMTP_FROM
: Sender email address.
AWS SES
AWS_REGION
: AWS region.AWS_SOURCE_EMAIL
: Source email address for sending emails.
Mailgun
MAILGUN_API_KEY
: Mailgun API key.MAILGUN_DOMAIN
: Mailgun domain.MAILGUN_FROM
: Sender email address.
Postmark
POSTMARK_API_KEY
: Postmark API key.POSTMARK_FROM
: Sender email address.
SendGrid
SENDGRID_API_KEY
: SendGrid API key.SENDGRID_FROM
: Sender email address.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
Issues
If you encounter any issues, please open an issue on GitHub.