Website builders8 min read

WordPress forms: CF7 vs WPForms vs Gravity — which one lands in inbox?

Same form, three plugins, three very different deliverability profiles. Data, root cause, and a recommendation.

WordPress sites are unique among site-builder platforms because you actually own the infrastructure. Unlike Tilda or Wix, you can install any plugin, point outgoing mail at any ESP, and authenticate on your own domain. But plugin choice still matters — Contact Form 7, WPForms and Gravity Forms each ship with different default outbound behaviour, and the default is what most sites run.

This article compares the out-of-the-box deliverability of the three most popular form plugins, then gives the one configuration change that flattens the difference.

Headline finding

Out-of-the-box, none of them are great. The plugin rarely matters once you install WP Mail SMTP or Fluent SMTP and point outgoing mail at a proper ESP. The real variable is your outbound mail configuration, not the form plugin.

The three default behaviours

Contact Form 7 (CF7)

  • Uses PHP's native wp_mail(), which defaults to PHP mail().
  • Outgoing mail leaves your hosting server with a wordpress@yourdomain.com envelope by default.
  • If your host is shared (Bluehost, HostGator, SiteGround baseline) the IP reputation is terrible. Expect Gmail Promotions, Outlook Junk.
  • Zero outbound logs unless you install a mail logging plugin.

WPForms (Lite and Pro)

  • Also uses wp_mail() by default.
  • Optionally bundles WP Mail SMTP (same publisher) with guided setup.
  • Default From and Reply-To are easier to set correctly via the UI than in CF7.
  • Better logs on Pro plans.

Gravity Forms

  • Uses wp_mail(), same underlying issue on default installs.
  • Best-in-class notification routing (conditional, multi-recipient, merge tags).
  • Add-ons for SMTP2GO, SendGrid and Mailgun that plug directly into notifications.
  • Logging add-on surfaces delivery status.

The common problem: wp_mail() over PHP mail()

All three plugins default to wp_mail(), which by default delegates to PHP's mail() function and ultimately to your web host's shared outbound MTA. That MTA:

  • Has shared IP reputation across every WordPress site on the box.
  • Has no DKIM signing capability on most budget hosts.
  • Sends from a headless www-data@host.example that fails DMARC alignment on your domain.

Gmail, Outlook, Yahoo all downrank this pattern in 2025+. The notification may get accepted, but it quietly lands in Promotions or Junk on most providers.

The one-line fix

Install WP Mail SMTP or Fluent SMTP and point it at any real ESP: SendGrid, Postmark, Mailgun, Amazon SES, Brevo, or your Google Workspace via OAuth. This bypasses the PHP mail() hop entirely. Placement jumps by 20–40 percentage points in one deploy.

Which ESP to point at

For low-volume form notifications (under 1k/month) the winners are:

  • Google Workspace OAuth. If you already run a Workspace tenant, this is the highest placement option because you're essentially sending Gmail-to-Gmail.
  • Postmark transactional. Dedicated transactional IP, clean reputation, free tier covers form use.
  • Amazon SES. Dirt cheap. Requires DNS setup but pays off at scale.

Avoid pointing at a marketing-only ESP like Mailchimp for form notifications — those pools optimise for opens on large lists, not for single-recipient transactional mail.

Then configure DNS on your domain

SPF on yourdomain.com:
  v=spf1 include:spf.postmarkapp.com ~all

DKIM (provider-issued selector):
  postmark._domainkey.yourdomain.com  TXT  "k=rsa; p=MIGfMA0G..."

DMARC starter:
  _dmarc.yourdomain.com  TXT  "v=DMARC1; p=none;
    rua=mailto:dmarc@yourdomain.com"

Once SPF + DKIM are aligned and DMARC reports start coming in, tighten to p=quarantine after 14 days of clean data. That moves placement another 5 to 10 points on Outlook specifically.

Seed test before and after

If you want to prove the effect, seed test your current config first, then install WP Mail SMTP, configure an ESP, re-test. You'll see the placement flip on every major provider. The form plugin brand name hardly shifts the numbers — the outbound pipe does all the work.

Recommendation

  • You already use CF7: install WP Mail SMTP, point at Postmark or Workspace OAuth. Done.
  • Starting fresh for a small business site: WPForms Lite + WP Mail SMTP (same publisher) is the path of least resistance.
  • You need conditional logic, multi-step, heavy routing: Gravity Forms. Same SMTP setup, but Gravity's notification engine is in a different league.

FAQ

Does the form plugin itself matter for deliverability at all?

Marginally. The plugin choice affects notification formatting, Reply-To handling and logging — all of which can make small placement differences. But the swing from switching SMTP is 10x bigger than the swing from switching plugin.

Is Fluent SMTP really as good as WP Mail SMTP?

Yes. Fluent SMTP is free, open, and supports every major ESP. It also has better logs than WP Mail SMTP Lite.

Can I use my existing Gmail to send via WP Mail SMTP?

Yes, via OAuth. This is often the best option for small sites because you're leveraging Google's IP reputation. Gmail-to-Gmail form notifications are effectively always Inbox.

How do I know if my current WordPress form mail is going to spam?

Add seed addresses to the form's notification list across Gmail, Outlook, Yahoo, Mail.ru, Yandex, ProtonMail. Submit the form and check placement per provider. If anything is not Inbox, you have a problem.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required