SendemailfromanyappwithyourownSMTP.
Connect the Gmail, Zoho or SES account you already have. Then send from your frontend or backend with one SDK call, grow email lists, send to them, and welcome new subscribers from one dashboard.
- No mail server to run
- Browser and Node.js
- Set up in about two minutes
Press send to watch the trip
Sent in this demo
Nothing yet. Press Send email.
Works with the mail account you already have
- Gmail
- Google Workspace
- Zoho Mail
- Amazon SES
- Outlook
- Microsoft 365
- Brevo
- Mailgun
- Any SMTP server
- SDK call to send
0
SDK call to send
mailer.send() from any JavaScript app
- Recipients per email
0
Recipients per email
Across to, cc and bcc
- AES-GCM encryption
0-bit
AES-GCM encryption
For SMTP passwords and API keys
- SDK dependencies
0
SDK dependencies
Browser, React, Next.js and Node 18+
Live in three steps
No mail server to run and no template language to learn. Bring the SMTP account you already have.
- 01
Create a service
One service per app. Name it and you get a service ID and an API key, ready to copy.
service_7f3a · My Shop
- 02
Connect your SMTP login
Enter the host, port and login from your mail provider, then send a test email to confirm it works.
smtp.gmail.com : 465 · Verified
- 03
Call mailer.send()
Install @neuctra/mailer and send from a React form, an API route or a background job.
npm install @neuctra/mailer
Built for the moment something goes wrong
Sending is the easy part. Keeping your key and your SMTP account safe is where it counts.
Limits that make a copied key useless
A key in browser code can be copied, and scripts can fake the website. Rate limits, allowed recipients and a captcha stop it from being used to spam through your SMTP account.
- Emails per minute
- 30 per service, for both keys
- Emails per day
- 500 keep it under your provider's limit
- Allowed recipients
- [email protected] a copied key can't email anyone else
- Captcha
- Cloudflare Turnstile stops bots on your forms
- Server key
- nm_sk_... refused from browsers
Keys locked to your websites
List the sites allowed to use your public key. Other websites are refused.
Rotate keys in one click
Leaked a key? Make a new one. The old key stops working right away.
nm_7f3a91c2e8b0…47f3Try it: press Rotate.
Passwords encrypted at rest
SMTP passwords and API keys are encrypted with AES-256-GCM and never sent back to the browser.
Errors that say what to fix
Wrong password or blocked port? You get a plain hint next to the raw SMTP error.
SMTP login failed
Check the username and password. Gmail needs an App Password.
535-5.7.8 Username and Password not accepted
More than transactional email
The same SMTP account that sends your receipts can reach your subscribers. Lists, templates, sending and welcome emails are built in.
Grow lists straight from your forms
Create a list in the dashboard, then add people from your signup or newsletter form with one SDK call.
- mailer.subscribe() and mailer.unsubscribe()
- Add and edit contacts in the dashboard
- Duplicate signups are handled for you
Newsletter
Subscribed- JCJane Cooper[email protected] New
- OHOmar Haddad[email protected]1 h ago
- LPLee Park[email protected]Yesterday
await mailer.subscribe({ listId, email: "[email protected]", name: "Jane" });
Same SDK in the browser and on the server
Send a contact form straight from React, or an order email from your API. Every call works the same way.
npm install @neuctra/mailer- Browser, React, Next.js and Node 18+
- No dependencies
- TypeScript types included
- Text, HTML, cc, bcc and reply-to
| 400 | Something is wrong with the email itself |
|---|---|
| 401 | Wrong API key, service ID or name |
| 403 | Service paused, or website not allowed |
| 502 | Your SMTP server refused it, and why |
1const mailer = new NeuctraMailer({
2 serverUrl: process.env.NEXT_PUBLIC_MAILER_URL,
3 serviceId: process.env.NEXT_PUBLIC_MAILER_SERVICE_ID,
4 serviceName: process.env.NEXT_PUBLIC_MAILER_SERVICE_NAME,
5 apiKey: process.env.NEXT_PUBLIC_MAILER_API_KEY,
6});
7
8async function handleSubmit(form) {
9 await mailer.send({
10 to: "[email protected]",
11 replyTo: form.email,
12 subject: `New message from ${form.name}`,
13 text: form.message,
14 });
15}One service for every email your app sends
From a single contact form to a growing newsletter, it all goes out through the account you trust.
- 01
Contact forms
Send form messages to your inbox straight from the browser, with reply-to set to the visitor.
- 02
Orders and receipts
Confirmations, shipping updates and invoices from your API, with a bcc copy for your records.
- 03
Passwords and sign-in
Reset links and sign-in codes, sent the moment someone asks for them.
- 04
Signup lists
Collect subscribers from your forms and welcome each one automatically.
- 05
Announcements
Send a template to the people you pick in a list, and see who got it and who is still pending.
- 06
Team alerts
New signups, failed payments or errors, sent to your team from any job or script.
Questions, answered
Something else? Create an account and try it with a test email. It takes about two minutes.
No. Any SMTP login works, including the Gmail or Zoho account you already have. Neuctra Mailer connects to it and sends on your behalf.
Yes, with the public key's limits on. List your websites, set allowed recipients (for a contact form, only your own address), keep the rate limits and optionally require a Cloudflare Turnstile captcha. A copied key then can't be used to spam. Send from your server with the separate server key, which browsers can't use.
It is encrypted with AES-256-GCM before it is saved and is never sent back to the browser. The dashboard only shows whether a password is set.
Plain text, HTML or both, with to, cc, bcc and reply-to. One email can go to up to 50 recipients.
Yes. Create lists, add people from your forms with mailer.subscribe(), and design emails with templates. Turn on a list's welcome email and every new subscriber gets it right away.
Every marketing email includes an unsubscribe link, plus the header that lets Gmail, Outlook and Apple Mail show their own one-click Unsubscribe button. People who leave go on the service's do-not-send list and get no more marketing email from any of your lists.
Emails go out through your own SMTP account with one-click unsubscribe headers. Addresses that bounce or unsubscribe are never emailed again, a new service is warmed up with a daily cap, and rate limits stop sudden bursts. On your side, send from your own domain and set up SPF, DKIM and DMARC with your mail provider.
Usually your network or host blocks outgoing SMTP ports 465 and 587. Try another network, or check that your hosting provider allows SMTP traffic.
Send your first email today
Create a service, add your SMTP login and send a test. It takes about two minutes.