Email and inbox
LiveSend form submissions to email
The oldest form problem there is: you have a contact form on a static site and nowhere for it to go. Sending mail from the browser is impossible, and standing up an SMTP server to deliver a handful of enquiries a week is absurd. Point the form at a WebForms endpoint instead and every submission lands in your inbox, formatted and ready to reply to.
What lands in Email
- A formatted notification with every field, in submitted order
- Reply-To set to the submitter, so replying goes to the person
- Submission time, source page and IP country in the footer
- Optional auto-reply to the person who filled the form
- File attachments linked, not embedded, so nothing bounces
Setup
Create a form and copy the endpoint
Sign up, create a form, and copy the endpoint URL. It looks like https://send.webforms.to/wft_your_key and is safe to publish in client-side HTML.
Point the form action at it
Set action to your endpoint and method to POST. Give every input a name attribute - the name is the label used in the email.
Add the recipient in the dashboard
Add the address that should receive notifications and confirm it. Recipients are configured server-side, never in the form markup, so nobody can rewrite the destination.
Submit once to confirm
Send a test submission. It appears in your inbox and in the dashboard within a second or two, and you can replay it from the delivery log any time.
Email example
Swap in your own endpoint and these run as-is.
Plain HTML. No JavaScript, no build step, works on any static host.
<form action="https://send.webforms.to/wft_your_key" method="POST"> <input name="name" required /> <input name="email" type="email" required /> <textarea name="message"></textarea> <!-- honeypot: bots fill it, humans never see it --> <input type="text" name="_gotcha" style="display:none" tabindex="-1" /> <button type="submit">Send</button> </form>
Or POST it yourself with fetch and stay on the page.
const res = await fetch("https://send.webforms.to/wft_your_key", {
method: "POST",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
},
body: JSON.stringify({
name: "Ada Lovelace",
email: "ada@example.com",
message: "Do you support file uploads?",
_subject: "New enquiry from the pricing page",
}),
});
const data = await res.json();
if (data.ok) form.reset();Worth knowing
- The recipient address never appears in your HTML. It is read from your account config, so a public endpoint can't be turned into an open relay.
- _subject, _replyto, _cc and _from_name are honoured per submission if you want to override the defaults from the form itself.
- Delivery is queued and retried with exponential backoff, so a transient mail failure doesn't lose the submission.
Email form FAQ
Yes. That is exactly what this does. Your form posts directly to a WebForms endpoint from the browser and we deliver the email. You need no server, no SMTP credentials and no serverless function.
No. Delivery runs on our infrastructure with authenticated sending and SPF/DKIM already configured. You never handle mail credentials.
Yes. Free forms deliver to one recipient; paid plans raise the limit and support CC. You can also add a second email destination with its own template.
Mail is sent from an authenticated domain with SPF and DKIM aligned, which is what mail providers check. Because Reply-To is the submitter but the From address is ours, you also avoid the spoofing penalty that self-hosted contact forms usually trigger.
Yes. Turn on the auto-responder and we send a acknowledgement to the submitter's address, with your own subject and body.
The free plan includes 300 submissions a month with email delivery, spam filtering and 30 days of stored submissions. No card required.
Other destinations
Send your next form submission to Email
Free for 300 submissions a month. Endpoint in under a minute, no card required.
Start free