Free contact form plugin for WordPress

Every enquiry saved — even when the email never arrives.

Formsafe saves each message in your WordPress dashboard before it sends anything, then shows you, entry by entry, whether your mail server accepted the notification — and the error it gave when it didn't.

Why it's off: new plugins wait in WordPress.org's review queue. The button goes live the day the listing exists.

  • Saved before it's sent
  • Nothing loads on pages without a form
  • No account, no calls home

Illustration · sample entries

Every entry kept
Mail status per entry
Spam stopped quietly
Private by default

How it works

Build it. Place it. Never lose a message.

  1. 1

    Build the form

    One box per field — label, type, required, width — in plain sight. Or start from one of four templates.

  2. 2

    Put it on a page

    The Formsafe Form block, or [formsafe id="…"] in a classic editor or page builder.

  3. 3

    Every message lands in Entries

    Saved first, then emailed — with the mail server's answer next to it, and Resend one click away.

Formsafe · Edit Form
The form editor: a Name field and an Email field, each in its own box with label, type, a Required tick box, width, name, placeholder and help text.

Why Formsafe

A quiet inbox should never be a mystery

See why a message didn't reach you

Each entry shows Sent to your mail server, Failed with your server's own error, or Not sent. Resend, or send a test email.

Nothing lost when email breaks

It's stored in WordPress before any email is attempted. If sending fails, the entry stays, marked Failed, with everything the visitor typed.

Spam stopped without puzzles

A honeypot, a time trap and a limit per IP address are always on. Turnstile, hCaptcha or reCAPTCHA v3 are optional, on your own keys.

Replies go straight to the sender

Reply-To is the visitor's address, and the From address stays on your own domain — with a check that tells you when it doesn't.

Leave Contact Form 7 without retyping

The importer reads your CF7 forms, shows first what can't come along, and lists every page a CF7 form sits on.

Private by default

IP addresses aren't stored unless you choose to, old entries can delete themselves, and WordPress' privacy tools find entries by email.

The real thing

Built for the day the email doesn't arrive

01

Every message, with its mail status

The Entries list keeps everything — including the one your mail server refused, with the exact error it gave.

Formsafe · Entries
Formsafe's Entries list: twelve contact form entries with their form, the time they arrived and their mail status; one is marked Failed with the mail server's error. Failed — with your server's own error
02

Where it came from, and what happened

One entry shows the page it was sent from, exactly when your mail server took it — and Resend, if it didn't.

Formsafe · Entry #15
A single entry: the form it came from, when it arrived, the page it was sent from, and the mail status Sent to your mail server with its time, above a Resend button. The page it came from Accepted, and when — or resend
03

Nothing the visitor typed is thrown away

Even without JavaScript: what to fix stands above the form, the field is marked, and the rest is still filled in.

example.com/contact
A contact page after Send without an email address: an error summary above the form, the empty email field outlined in red, and the name and message still filled in. What to fix, at the top The field, marked

Formsafe Pro · paid add-on

Keep every lead flowing into your newsletter and CRM.

Pro sends each entry on to the services you already pay for, using API keys from your own accounts.

  • Mailchimp, Brevo, Kit, MailerLite, ActiveCampaign, HubSpot — or any webhook: Zapier, Make, n8n
  • For each form: the list and the fields each entry goes to
  • Refused or unanswered deliveries kept and retried for up to 7 days
  • An alert email at most once a day — and once more when it works again
Monthly — Billed monthly · cancel any time Not on sale yet
Yearly — Billed once a year · cancel any time Not on sale yet

One site per licence · plus VAT where applicable · Compare free and Pro

Not on sale yet. Pro installs on top of the free plugin, and the free plugin isn't in the WordPress.org directory yet.

Free and Pro

The free plugin is the whole contact form

What it doesFreePro
Forms with 11 field types, four templates, block and shortcode✓✓
Every entry saved, searchable, exportable to CSV✓✓
Mail status per entry, Resend, Send test email✓✓
Honeypot, time trap, IP limit — plus Turnstile, hCaptcha or reCAPTCHA v3✓✓
Import from Contact Form 7, forms in and out as JSON✓✓
Entries sent on to Mailchimp, Brevo, Kit, MailerLite, ActiveCampaign, HubSpot or a webhook—✓
Failed deliveries kept and sent again for up to 7 days, with an alert email—✓
$0—

Questions

Before you install it

Is the free version complete, or a trial?

Complete. Nothing in it is locked or time-limited, there is no limit on how many entries it keeps, and it never asks for a licence. Pro adds a separate job: passing entries on to other services.

Will my emails arrive now?

Like Contact Form 7 and WPForms, Formsafe hands the message to wp_mail(); your host's mail server or SMTP plugin does the rest. What changes is that you can see what happened — and the entry is saved either way.

Does it work with my SMTP plugin?

Yes: it sends through WordPress' own wp_mail(), the function SMTP plugins such as WP Mail SMTP and FluentSMTP take over, and records the outcome WordPress reports back.

What does the plugin send out, and to whom?

The free plugin sends nothing to us. It contacts Cloudflare, hCaptcha or Google only to check a CAPTCHA answer, and only if you switch one on. The privacy policy lists every call.

What happens if I stop paying for Pro?

Nothing switches off. Your connections, the retry queue and the alert emails keep running, and no data is removed. Updates and support stop, and one notice on Formsafe's Settings screen says so.

Will it slow my site down?

Its stylesheet and script load only on pages that show a form, and they don't need jQuery. Entries live in two tables of Formsafe's own, not among your posts.

Put a form on your site that tells you what happened

The download opens here once WordPress.org has approved the listing.