Reliable email delivery for form submissions.
Email delivery is the engine underneath every FormWire notification. Each submission is stored before we acknowledge it, handed to a delivery worker that retries on failure, and every attempt leaves a status you can read, so a lead reaches your inbox, or you can see exactly why it hasn't yet.
FormWire <notifications@formwire.com>
to you · just now
New submission: Contact form
Reply-To: ada@example.com · hit reply, land with your visitor
Why form email delivery is an engineering problem
A form email that silently fails is worse than no form at all: the visitor thinks they reached you, and you never know they tried. Most of what makes form email reliable happens after the POST returns: whether the submission survived, whether the send actually landed, and what you can see when it didn't.
That's the job of this page. Where the email integration covers the destination (who receives submissions, how Reply-To and CC/BCC are set), this covers the delivery engine behind it: durable storage, automatic retries, sending-address authentication, and the per-submission status that turns "I think it sent" into something you can check.
How FormWire delivers form emails
Every submission runs the same path, so delivery behaves the same on your first form as on your ten-thousandth.
▸ POST /submit
Spam check
honeypotPASS
rate_limitOK
Stored: JSON ready on the read API
writeCOMMITTED
Email sent
toyou@yourcompany.com
ccsales@yourcompany.com
bccarchive@yourcompany.com
reply-to
smtp250 OK
Integrations triggered
webhook POST200 OK
x-form-signatureVALID
slack · sheetsDELIVERED
How FormWire delivers form emails
Every submission runs the same path, so delivery behaves the same on your first form as on your ten-thousandth.
-
Stored before we acknowledge
The moment your form POSTs, the submission is committed to durable storage before the 200 comes back. If FormWire says OK, the lead already exists. Email is what happens next, not the only copy of it.
-
Handed to a delivery worker
A background worker picks up the stored submission and sends it to your verified recipients, with Reply-To set to the person who submitted so a reply lands straight back with them.
-
Retried on failure
A transient problem (a busy mail server, a momentary timeout) doesn't drop the lead. Delivery is retried automatically with backoff rather than failing on the first attempt.
-
Status recorded per attempt
Each attempt updates the submission's delivery status (delivered, retrying, or failed), so you never have to guess whether an email actually went out.
What happens when delivery fails
Mail servers have bad minutes. The design assumption is that a send will occasionally fail, so a failure is a recorded state you can act on, never a lost submission.
-
Nothing is lost
Because the submission is stored before delivery is attempted, a failed send never loses the lead. The record stays in your dashboard, queryable, regardless of what happens to the email.
-
Retried automatically
Transient failures are retried with backoff instead of giving up on the first error, so a brief hiccup at your mail provider resolves itself without you doing anything.
-
Marked failed when retries are exhausted
If delivery still can't succeed, the submission is marked failed rather than disappearing quietly, so a persistently bad address surfaces as a status you can see and fix, not silence.
FormWire <notifications@formwire.com>
to you · just now
New submission: Contact form
Reply-To: ada@example.com · hit reply, land with your visitor
Form email deliverability: SPF, DKIM and spam placement
Whether form email lands in the inbox or the spam folder comes down to how it's sent. FormWire owns that side so you don't have to.
-
Sent from an address FormWire authenticates
Notifications go out from a consistent FormWire sending address with sender authentication in place, so mailbox providers see a legitimate, aligned sender rather than an unknown one — which is what keeps them out of spam.
-
Reply-To, not spoofing
Reply-To is set to your visitor so replies reach them, but the message isn't sent "from" an address FormWire doesn't own. Spoofing a sender fails SPF and DMARC checks and lands in spam; Reply-To gives you one-click replies without it.
-
Nothing for you to configure
You verify the address that receives submissions. You don't set up SMTP, and you don't add SPF or DKIM records for a sending domain. The authenticated sending side is FormWire's to run.
Delivery status you can check per submission
Reliability you can't see isn't reliability you can trust. Every submission carries its own delivery state, so "did that email go out?" is a thing you look up, not a thing you hope.
-
Delivered, retrying or failed
Each submission in your dashboard shows exactly where its email is: delivered and done, still retrying, or failed after retries. No log-diving, no support ticket to find out.
-
A stored record behind every email
The email and the dashboard record are two views of one stored submission. A lead never lives only in your inbox, so a filtered folder or a deleted message can't erase it.
-
Proof a submission was handled
Because status is tracked per submission rather than per account, you can point to a specific lead and see what happened to it — useful when a visitor swears they submitted and you need to check.
Submissions
- delivered
Do you take on analytical engines?
Ada Lovelace · Contact · 2m ago
- delivered
Plus one is a golden retriever — okay?
Hannah B. · RSVP · 28m ago
- quarantined
URGENT!!! exclusive offer inside 🎁
cheap-pills-now · Contact · 3h ago
- delivered
Order #418 — I'm a teapot, apparently
Short & Stout · Order · 4h ago
- delivered
The math checks out — where do I sign?
Katherine Johnson · Support · 5h ago
- delivered
Have you tried turning it off and on?
Roy from IT · Support · 7h ago
Email deliverability FAQ
Want to set up recipients and routing?
Email notifications for form submissionsDelivery you can watch, not just hope for.
Verify your address, paste the snippet, and every submission is stored, delivered with retries, and status-tracked from the first POST.