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 and _replyto are honoured per submission if you want to override the defaults from the form itself, and so is _from_name on plans with custom sender names. CC and BCC recipients are set on the email destination in the dashboard (paid plans), never from the request.
- Each email is attempted once. If the recipient's server refuses it, that address is suppressed across the platform straight away, so a dead mailbox is never mailed twice, and the destination shows why. The submission itself is always stored.
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, on a paid plan. Free delivers to one recipient on one destination; Pro and Agency raise the recipient limit, support CC, and let you 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.
One bounce is enough. The address goes on the suppression list at once and is never emailed again by any form, auto-reply or account email, and the email destination shows the reason. The failed email is not retried. If a whole domain cannot receive mail, the domain is blocked too, except for shared providers like Gmail, which are only ever blocked one address at a time. The submission is still stored in your dashboard.
Yes, on Pro and Agency. Turn on the auto-responder and we send an 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
Sending from your stack
The destination is set in the dashboard, so the form itself is the same plain POST everywhere. These guides have the markup for the common setups.
Send your next form submission to Email
Free for 300 submissions a month. Endpoint in under a minute, no card required.
Start free