How to send an HTML form to your email

August 31, 2026

HTML can draw a form, but it can't send email. There is no action="email:[email protected]", and the closest thing that does exist, a mailto: action, pops open whatever mail app the visitor's machine defaults to, which for most people is nothing they've ever configured. The form needs a server to POST to. It just doesn't have to be your server.

The whole thing, in one snippet

Create a free NormForms form and you get an endpoint URL. Point any HTML form at it:

<form action="https://normforms.com/f/YOUR_TOKEN" method="POST">
  <label for="nf-name">Name</label>
  <input id="nf-name" type="text" name="name" autocomplete="name" required>

  <label for="nf-email">Email</label>
  <input id="nf-email" type="email" name="email" autocomplete="email" required>

  <label for="nf-message">Message</label>
  <textarea id="nf-message" name="message" required></textarea>

  <input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">
  <button type="submit">Send</button>
</form>

Every field name you invent arrives in the email. Add <input name="budget"> to the HTML and "budget" shows up in your inbox; there's no dashboard configuration step. The _gotcha field is a honeypot for bots: keep it hidden and empty.

The alternatives, and why they're worse

Test it before you ship

Submit the form from localhost and it's automatically test mode: the email arrives with a [Test] prefix and doesn't count against your quota. Once deployed, set your site's domain in the form's settings and submissions from any other origin are silently dropped. Spam that gets caught never counts against your monthly limit either.

Get your form endpoint →