6 Providers
Gmail, Microsoft 365, Yahoo (all OAuth 2.0), plus SMTP, SendGrid, and Mailgun APIs.
Gmail, Microsoft 365, Yahoo (all OAuth 2.0), plus SMTP, SendGrid, and Mailgun APIs.
Route emails by type, recipient domain, subject, or custom fields. Per-rule failover chains.
Learn moreWhen an account hits a rate limit, Magic-Mail automatically falls back to the next account.
Drag-and-drop email builder with Mustache variables and version history (Premium).
List-Unsubscribe headers added automatically for marketing emails. One-click unsubscribe.
All credentials (OAuth tokens, SMTP passwords, API keys) encrypted with AES-256-GCM.
npm install strapi-plugin-magic-mail// config/plugins.ts
export default () => ({
'magic-mail': { enabled: true },
});npm run build && npm run developOpen Admin → Magic-Mail → Email Accounts, click Add Account, choose a provider, authenticate, test. Done.
Magic-Mail transparently intercepts Strapi's built-in email service. Any plugin or controller that calls strapi.plugin('email').service('email').send(...) is automatically routed through Magic-Mail's provider selection, rate-limit tracking, and failover logic. You don't need to rewrite existing code.
// This call goes through Magic-Mail automatically
await strapi.plugin('email').service('email').send({
to: 'user@example.com',
subject: 'Welcome',
html: '<h1>Hello!</h1>',
type: 'transactional', // Optional: used by routing rules
});For direct control you can also call the Magic-Mail service:
await strapi.plugin('magic-mail').service('email-router').send({
to: 'customer@example.com',
subject: 'Order Confirmation',
html: '<h1>Order #12345</h1>',
accountName: 'SendGrid Marketing', // Force a specific account
});| Provider | Auth | API | Attachments | Docs |
|---|---|---|---|---|
| Gmail | OAuth 2.0 | Gmail API | Yes | Providers → |
| Microsoft 365 | OAuth 2.0 (Azure AD) | Graph API | Yes | Providers → |
| Yahoo Mail | OAuth 2.0 | SMTP-OAuth2 | Yes | Providers → |
| SMTP | Username / Password | SMTP | Yes | Providers → |
| SendGrid | API Key | SendGrid API | Encoded | Providers → |
| Mailgun | API Key | Mailgun API | Limited | Providers → |
List-Unsubscribe and List-Unsubscribe-Post headers included automaticallyGenerate a production encryption key:
openssl rand -hex 32
# Add the result as MAGIC_MAIL_ENCRYPTION_KEY in your .env| Feature | Free | Premium | Advanced |
|---|---|---|---|
| Email accounts | 3 | Unlimited | Unlimited |
| All 6 providers | ✓ | ✓ | ✓ |
| Smart routing | ✓ | ✓ | ✓ |
| Automatic failover | ✓ | ✓ | ✓ |
| Templates | 25 | 100 | 500 |
| Version history | — | ✓ | ✓ |
| Analytics | — | Basic | Advanced |
| A/B testing | — | — | ✓ |
| Import/export | — | — | ✓ |
| Priority support | — | — | ✓ |
| Price | $0 | $14.50/month | $39.50/month |
Step-by-step setup for each provider and configuration options.
Get startedBuild rules that pick the right account for every outgoing email.
Learn routingAll methods, parameters, and return types for server-side use.
View APIRecipes for common patterns: transactional, marketing, multi-tenant.
See examplesDiagnose and fix OAuth, SMTP, API, and routing issues quickly.
Fix issuesAnswers to the questions we get asked most often.
Read FAQMade by Joulee Tech GmbH. Free tier · 30-day money-back guarantee on paid tiers.