Form to email
Turn any HTML form into an email — without building a backend
A contact form is just HTML until something receives the POST. Building that "something" usually means a backend route, a mail server or transactional email provider, SPF and DKIM records, and a bit of code you'll maintain forever for a form that emails you a handful of times a day.
PostTo replaces all of that with one line: point your form's action="" attribute at a PostTo endpoint URL. The submission arrives in your inbox, gets logged to a searchable dashboard, and passes through spam filtering — with zero backend code of your own.
Free plan, no credit card required.
How PostTo handles it
No mail server to configure
PostTo delivers the email for you via its own transactional email provider — no SPF, DKIM, or sender reputation to set up or maintain on your side.
Reply-To set automatically
When the submission includes a valid sender email, PostTo sets it as Reply-To — hit reply in your inbox and you're answering the visitor directly.
Works with any field names
PostTo doesn't force a subject/message schema. Submit whatever fields your form has; map them to canonical roles (subject, message, name, email) per endpoint if your field names don't already match.
Spam-filtered before it hits your inbox
A honeypot field plus first-party heuristic scoring run on every submission, free on every plan. Flagged messages are held for review in the dashboard, not silently dropped.
Three steps, a few minutes
Create an endpoint
Sign up free, create an endpoint in the dashboard, and set the destination email address. You get an endpoint URL immediately.
Point your form at it
Set the form's action to the endpoint URL and method to POST. Any HTML form, on any host or framework, works unchanged.
Done — check your inbox
Submit the form and the email arrives, Reply-To set to the sender's address when valid. Every submission is also stored in your dashboard.
The code
Replace YOUR_TOKEN
with the endpoint URL from your dashboard.
<form action="https://postto.dev/api/v1/send/YOUR_TOKEN" method="POST">
<label for="name">Name</label>
<input type="text" id="name" name="name" required>
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
<label for="message">Message</label>
<textarea id="message" name="message" required></textarea>
<!-- Honeypot: bots fill this in, humans never see it -->
<input type="text" name="_hp" tabindex="-1" autocomplete="off" style="display:none">
<!-- Where to send the visitor after a successful submission -->
<input type="hidden" name="_next" value="https://yoursite.com/thanks">
<button type="submit">Send</button>
</form>
Pick your framework
A dedicated walkthrough and copy-pasteable snippet for each stack.
From the docs
Frequently asked questions
- Does this work with static sites and JavaScript frameworks?
- Yes — the form is plain HTML, so it works on static hosts (GitHub Pages, Netlify, Cloudflare Pages) and inside any frontend framework, with or without client-side JavaScript.
- Do I need to verify a sending domain?
- No — PostTo sends from its own verified domain via its transactional email provider. You don't manage SPF, DKIM, or DMARC records for this.
- Can I show an inline success message instead of redirecting?
- Yes. Submit the form with fetch and an Accept: application/json header and render PostTo's JSON response inline. The plain HTML redirect flow above needs no JavaScript at all.
- What stops someone from spamming my inbox through the form?
- The hidden _hp honeypot field above catches basic bots silently. Every submission also passes first-party heuristic filtering, and you can enable AI classification or Cloudflare Turnstile per endpoint for tougher spam.
- What does it cost?
- The free plan includes 50 submissions per month with the full dashboard — no credit card required. Paid plans start at $9/month.
- Is there a guide specific to my framework?
- Yes — see the framework-specific walkthroughs below for WordPress, Laravel, Next.js, Astro, Hugo, SvelteKit, and Nuxt, each with a copy-pasteable snippet for that stack.
See it working in a few minutes
Create an endpoint, point your form at it, and see your first submission in the dashboard — all on the free plan.
Try PostTo free