JetEmail email provider plugin for EmDash CMS.
Delivers transactional emails — authentication, notifications, form submissions, and more — through the JetEmail API.
- An EmDash site
- A JetEmail account with a verified domain
- A transactional API key (get one from the JetEmail dashboard under Outbound > Keys)
npm install @jetemail/emdash// astro.config.mjs
import { jetEmailPlugin } from "@jetemail/emdash/config";
// Add jetEmailPlugin() to your emdash plugins array:
emdash({
database: d1({ binding: "DB", session: "auto" }),
storage: r2({ binding: "MEDIA" }),
plugins: [formsPlugin(), jetEmailPlugin()],
// ...
}),You can optionally pass your API key at config time instead of setting it in the admin panel:
plugins: [jetEmailPlugin({ apiKey: process.env.JETEMAIL_API_KEY })],Navigate to Plugins > JetEmail in the EmDash admin panel and enter:
| Setting | Description |
|---|---|
| API Key | Your JetEmail transactional API key (starts with transactional_). |
| From Address | The sender email address. Must be on a domain verified in your JetEmail account. |
| From Name | Display name shown to recipients (optional). |
Use the Send Test Email section on the plugin page to verify your configuration.
This plugin registers as an EmDash email provider using the email:deliver exclusive hook. When any part of EmDash sends an email — the auth system (magic links, password resets), the forms plugin, or any other plugin calling ctx.email.send() — JetEmail delivers it.
| Capability | Purpose |
|---|---|
email:provide |
Registers the email:deliver hook so EmDash routes all outgoing email through JetEmail |
network:fetch |
Allows HTTP requests to api.jetemail.com (restricted by allowedHosts) |
| Route | Description |
|---|---|
settings/get |
Returns current plugin settings |
settings/save |
Saves plugin settings |
status |
Returns whether the plugin is configured |
test |
Sends a test email |
If you need help, visit our support center.