Safe in front-end code
Lock each key to your websites, to fixed recipients and to an hourly limit. A leaked key can only ever email you.
- Allowed websites
- Allowed recipients
- Hourly limit
- Spam honeypot
Turn your Gmail, Zoho or any SMTP into an email API. Contact forms, signups and scheduled emails, with no backend.
Free foreverNo card neededLive in 2 minutes
Hi! I'm interested in your product. Can you share more details?
Reply goes straight to ana@example.comWorks with the email provider you already have
Get started
No server, no build step, no SDK. If you can paste HTML, you can ship this.
Pick your provider and the server settings fill themselves in. Test the connection in one click.
Every site gets its own endpoint and key, with ready-made code for HTML, JavaScript and more.
<form action=".../form/KEY">
Messages land in your inbox from your own address. Every send shows up in the logs.
<form action="https://app.formsmtp.com/api/v1/form/YOUR_FORM_KEY" method="POST">
<input name="name" placeholder="Your name" required>
<input name="email" type="email" placeholder="you@example.com" required>
<textarea name="message" placeholder="Message" required></textarea>
<button>Send</button>
</form>await fetch("https://app.formsmtp.com/api/v1/send", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
to: "you@yourdomain.com",
replyTo: form.email.value,
subject: "New message from " + form.name.value,
text: form.message.value,
}),
});await fetch("https://app.formsmtp.com/api/v1/send", {
method: "POST",
headers: { "Authorization": "Bearer YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
to: "ana@example.com",
template: "Welcome", // designed in the visual builder
variables: { first_name: "Ana" },
}),
});curl -X POST https://app.formsmtp.com/api/v1/send \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"to":"you@yourdomain.com","subject":"Hello","text":"It works!"}'New to this? How form SMTP works. Step-by-step guides: Send email from a static website · Send email from JavaScript · HTML contact form that emails you · GitHub Pages contact form · Next.js contact form · Astro contact form · all guides
Everything included
Start with a contact form. Grow into templates, contacts and scheduled emails, all in the same dashboard, on every plan.
Lock each key to your websites, to fixed recipients and to an hourly limit. A leaked key can only ever email you.
Brand colors, logo, buttons and images, with live desktop and mobile previews.
Signup forms add people automatically. Tag them, add fields, import CSV.
Send now, later, or every day, week or month in any timezone.
Every email with its status and the exact SMTP error. Try real requests from the dashboard.
SPF, DKIM and DMARC at a glance, plus one-click unsubscribe on bulk email.
Savings calculator
Others charge per submission because they pay to send your email. You bring the SMTP, so we don't.
Cheapest plan that covers the volume, from public pricing pages (October 2026). Founding members pay $0 up to 10,000 emails a month.
Pricing
For a portfolio or a side project.
First 2,000 users. Free for 12 months.
For freelancers and growing products.
For agencies running many client sites.
Every plan sends through your own SMTP account, so your provider's sending limits still apply. Paid plans are prepaid monthly or yearly via Razorpay and never auto-renew; start free and upgrade any time. Compare every plan
Compare
| FormSMTP | Formspree | EmailJS | Web3Forms | Forminit (Getform) | |
|---|---|---|---|---|---|
| Free emails / month | 1,00010,000 for founding members | 50 | 200 | 250 | 100 |
| Cheapest paid plan | $5/mo50,000 emails | $15/mo200 submissions | $9/mo2,000 requests | $12/moyearly, 20,000 | $19/mo5,000 submissions |
| Sends from your own SMTP | Every plan | Business plan only | Yes | Not listed | Custom sender on Business ($99/mo) |
| Templates, contacts & scheduling | Included | Partial | Templates only | No | No |
Competitor figures from their public pricing pages, October 2026. Prices change; check before you decide. Full comparisons: Formspree alternative · EmailJS alternative · Web3Forms alternative · Forminit (Getform) alternative.
Built for
await sendEmail({ to: "ana@acme.co", template: "Welcome", variables: { first_name: "Ana" }, });
FAQ
The short version of how FormSMTP works, what it costs and what stays yours.
Yes, and that is the point. FormSMTP sends through the account you already trust: Gmail, Google Workspace, Outlook, Zoho, your host, or a service like Amazon SES, Brevo or Resend. Your sender reputation stays yours and nobody else shares your IP.
The first 2,000 accounts get 10,000 emails a month at $0 for a full year. It's applied automatically when you sign up, there's no card, and the offer closes once the spots are gone. After the year you move to the Free plan unless you choose to upgrade. Everyone else still gets 1,000 emails a month free.
Yes, the form key. It only works on the form endpoint and always sends to your own inbox, with per-visitor rate limits, a honeypot, a spam filter and optional CAPTCHA. Even if someone copies it, it can only send to you. The API key, which can email anyone, stays in server code.
Anywhere you can add an HTML form or a fetch() call. There is no backend to deploy: the form posts straight to FormSMTP, which sends through your SMTP account.
The email is logged as failed with the exact error from your provider (wrong password, sending limit, and so on), so you can fix it in a minute. The dashboard shows a connection health check.
Passwords and API keys are encrypted at rest with AES-256-GCM, decrypted only in memory to send your email, and never shown back in the dashboard.
Limited-time offer
10,000 emails a month, free for your first year. Elsewhere that volume costs $12 to $90 a month. Yours costs nothing, and there’s no card to enter.