3.5 · Contact forms

Level 3 · Advanced: essential plugins

3.5Contact forms

Goal: create a working contact form, with reliable notifications and anti-spam protection.
Estimated time: 12 min · self-paced reading · If you only have 5 min: read “The essentials in 30s” + the diagram.

The essentials in 30 seconds

  • A form plugin (Contact Form 7, WPForms, Fluent Forms) creates the form without coding.
  • The real challenge is deliverability: notifications often end up in spam without a reliable SMTP plugin.
  • Protect the form with anti-spam (honeypot, reCAPTCHA) and required fields.

Running mini-case — actually receiving the messages

Hassan wants to receive quote requests by email. Samir creates a simple form (name, email, message), then discovers that the notifications are not arriving. He installs an SMTP plugin and connects a reliable sending service. He also adds anti-spam protection: without it, Hassan's inbox would fill up with bot messages within days.

Sequel to case 3.4 — the site is secure; it needs a reliable contact channel.

1. Creating the form

WordPress does not offer a native form, but plugins do it very well: Contact Form 7 (free and lightweight), WPForms or Fluent Forms (intuitive drag and drop). You define the useful fields — name, email, message, possibly phone and type of request — and mark the essential fields as required.

The form is inserted into a “Contact” page via a block or a shortcode. Samir provides a clear confirmation page after submission and checks the rendering on mobile. A long form discourages people: it is better to ask only for the essentials.

2. Deliverability and anti-spam

The classic trap: the form works, but the emails do not arrive or go to spam. The cause is often sending through the server's mail function, which is unreliable. An SMTP plugin such as WP Mail SMTP, connected to a sending service (Brevo, for example), makes notification delivery reliable.

Without protection, a form quickly receives bot submissions. Enable a honeypot, a reCAPTCHA or a simple question, and possibly a limit on the number of submissions. Samir sends a real test after every change and also checks the recipient's spam folder.

Common misinterpretation: “The form will necessarily send the emails.” No: without reliable SMTP, notifications may disappear or be classified as spam. Creating the form is only half the work; deliverability is the other half.
A contact form that works Creating the form, configuring notifications, reliable SMTP, anti-spam and a real test. Create the formConfigure notificationReliable SMTPAnti-spam & test
Create, configure, make sending reliable, protect and test.
Text version of the diagram (SEO / screen readers / translation): 1) Create the form with the useful fields. 2) Configure the notification to the right recipient. 3) Make sending reliable with SMTP. 4) Protect with anti-spam and test for real. Lesson: deliverability matters as much as the form.

🔎 Concrete example — Receiving Hassan's requests (Samir's case)

1. WPForms: Name, Email, Message (required).
2. Notification to contact@atelierbahja.ma.
3. WP Mail SMTP + Brevo for deliverability.
4. Honeypot + reCAPTCHA.
5. Real test, check the spam folder.
→ Clear confirmation page and error message.

Result: a reliable, clean contact channel.

Lesson: test the actual sending, not just the display.

Section vocabulary

Form plugin
A module that creates and manages forms without coding: Contact Form 7, WPForms, Fluent Forms.

Simple example: a quote request form for the workshop.

What it is not: coding a form by hand without protection.

Reflex: form = dedicated plugin.

Notification
The email sent to the admin or the user on each submission.

Simple example: an alert to contact@atelierbahja.ma.

What it is not: creating a form with no recipient configured.

Reflex: always test the notification.

SMTP
A reliable sending service that improves email deliverability.

Simple example: WP Mail SMTP connected to Brevo.

What it is not: relying on the server's mail function.

Reflex: missing emails → check SMTP.

Anti-spam
Protection against bot submissions: honeypot, reCAPTCHA, question.

Simple example: an invisible honeypot on the form.

What it is not: publishing a bare form.

Reflex: anti-spam from launch.

Required field
A field required to submit the form: name, email, message.

Simple example: email is required so you can reply.

What it is not: making everything optional and receiving unusable messages.

Reflex: ask for the essentials, but require them.

In practice — A form that really works

  1. Install a form plugin and create a Name, Email, Message form.
  2. Set the notification to the right recipient with a clear subject.
  3. Insert the form into a Contact page and send a real test.
  4. If the email is missing, install WP Mail SMTP and connect a service; add anti-spam.
A working form whose notifications actually arrive: the secure conversion channel.

Ready-to-use script — reassuring about messages (20 s)

“Requests will arrive directly in your inbox, with the name, email and message. I have configured sending to avoid spam and protected the form against bots. We will run a test together before going live.”

Always run a real test with the client: that is what reassures them.

Copy-paste template — form sheet

PLUGIN: _______________
FIELDS (required): _______________
NOTIFICATION RECIPIENT: _______________
SMTP CONFIGURED: yes / no (service: _______________)
ANTI-SPAM: honeypot / reCAPTCHA / question
REAL TEST CARRIED OUT: yes / no (spam folder checked)

Quote request

Add the project type and an indicative budget, without making it heavier.

Simple contact

Name, email, message: the essentials are enough.

Booking

Date and number of people fields, with automatic confirmation.

Newsletter

A single email field, double opt-in for consent.

✓ Best practices

  • Run a real test after configuration.
  • Make sending reliable with SMTP.
  • Protect the form against bots.

✗ Common pitfalls

  • Creating the form without testing reception.
  • Relying on the server's mail function.
  • Publishing a form without anti-spam.

Key takeaways

  • A plugin creates the form without coding.
  • Deliverability depends on reliable SMTP.
  • Anti-spam prevents a flood of bots.
  • A real test validates the form before delivery.

48h Challenge — apply tomorrow

Create a contact form, configure the notification and send a real test. If the message does not arrive, install SMTP and try again. 20 minutes.

Section exit checklist
  • I create a form with the useful fields.
  • I configure and test the notifications.
  • I protect the form against spam.
Self-rating 1-5: do my messages really arrive?is my form protected?

Frequently asked questions

Why don't my form emails arrive?

Often because the server uses an unreliable mail function or the message is classified as spam. Install an SMTP plugin connected to a recognised sending service, then test again while checking the spam folder.

Which anti-spam should I choose?

An invisible honeypot is simple and effective. reCAPTCHA adds a visible but robust check. For a small site, a honeypot and a simple question are often enough; adjust according to the volume of spam.

Can I save messages in WordPress?

Yes, some plugins keep submissions in the database. Check your obligations to inform users and retain personal data: save only what is necessary and set a retention period.

Check your understanding

Hassan wants to receive contact requests by email. Which solution is the safest?

Additional resources (optional, to go further)

Level 3 examFresh, harder questions to test what you've learned