A custom Directus extension that integrates ZeptoMail's HTTP API to send transactional emails.
- π° Introduction
While setting up email functionality for a Directus-powered project, I encountered a limitation with my hosting environment on DigitalOcean, which does not support outbound SMTP connections by default. This restriction made it impossible to use traditional email plugins or SMTP-based providers.
To overcome this, I developed this extension to use ZeptoMail's HTTP APIβa secure and reliable alternative to SMTPβfor sending transactional emails. This solution allows Directus to send emails without relying on SMTP, making it ideal for environments where SMTP is blocked or restricted.
- Sends transactional emails using ZeptoMail's HTTP API.
- Fully configurable via Module.
- Can be triggered on any Directus lifecycle hook (e.g. user creation, login, password reset).
- No SMTP dependency.
You can install the extension in one of two ways:
- Open your Directus Admin Panel.
- Go to Settings β Extensions
- Click "Marketplace"
- Search for ZeptoMail
- Click install.
npm install directus-extension-zeptomailpnpm add directus-extension-zeptomailyarn add directus-extension-zeptomailπ Also take a look at the Directus Guide for more information on how to include and manage custom extensions in your Directus instance.
After installing the extension, you'll need to configure by doing the following.
- Open your Directus Admin Panel.
- Navigate to Settings β Modules.
- Enable the ZeptoMail Settings module.
- From the main navigation menu, click on ZeptoMail Settings.
- Fill out the configuration form as described below:
| Field | Description |
|---|---|
| API Token | Your ZeptoMail API token (available in your ZeptoMail console). |
| From Address | A verified sender email address (must be verified in your ZeptoMail account). |
| Name | (Optional) The sender name that will appear in the recipient's inbox. |
| Track Clicks | (Optional) Enable or disable click tracking. |
| Track Opens | (Optional) Enable or disable open tracking. |
| Client Reference | (Optional) A custom identifier for tracking individual transactions. See client_reference. |
β οΈ Make sure your From Address is verified in ZeptoMail to avoid delivery issues.
- Attachments are currently not supported due to Directus limitations. See #22223 for more details.
- Batch sending is not supported for the same reason; however, the
tofield already accepts an array of recipients by default. - ZeptoMail Template API is not supported, as Directus handles email templates natively within its system.
Contributions are welcome! If youβd like to add new features, fix bugs, or improve the extension, feel free to submit a pull request. For major changes, please open an issue first to discuss what youβd like to do.
- Fork the repository
- Create your feature branch:
git checkout -b my-feature - Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin my-feature - Open a pull request
Found a bug or have a feature request? Please open an issue on GitHub with a clear description and steps to reproduce (if applicable). Your feedback helps improve the extension!
This project is licensed under the MIT License. See the LICENSE file for details.
If you want to support our projects and help us group it, you can become a sponsor on GitHub or just donate on Buy Me Coffee.
Made with π in Saudi Arabia

