Your contact form works fine. You tested it. Real people submit it. But if spambots are getting through, something else is happening that you're probably not watching: WordPress is relaying those spam messages through your mail server using your domain's email infrastructure.
How WordPress sends email
When a contact form fires, most WordPress contact plugins (Contact Form 7, Gravity Forms,
WPForms, Fluent Forms) call wp_mail() to deliver the submission.
Unless you've set up a dedicated transactional email service like SendGrid or Mailgun,
wp_mail() defaults to PHP's built-in mail()
function, which sends directly from your server using your domain.
That means every spam form submission becomes an outbound email from your domain. The message content, headers, and sending IP all point back to you.
What receiving mail servers see
Gmail, Outlook, Apple Mail, and corporate mail servers all run continuous reputation checks on sending domains and IP addresses. They track things like:
- How many messages from your domain are marked as spam by recipients
- Whether your IP appears on blocklists like Spamhaus or Barracuda
- Whether the content of messages from your domain matches spam signatures
- Your sending volume relative to your domain's historical baseline
If spambots submit 500 contact forms per day and WordPress relays all 500 messages, receiving servers see 500 messages per day from your domain containing spam content. Your domain reputation score drops. Future legitimate emails, newsletters, transactional receipts, and support responses land in junk folders. Some get blocked entirely.
The delayed damage problem
Email reputation damage is slow to build and slow to recover. By the time you notice your newsletters have a 12% open rate instead of 28%, the damage has been accumulating for weeks. Fixing the underlying spam problem stops the bleeding, but rebuilding the reputation takes time. Google Postmaster Tools will show you the domain reputation over time if you set it up, but most site owners don't check it until something's already broken.
What Mail Guard does
QWeb Spam Shield AI includes a Mail Guard feature that hooks into wp_mail()
before any message is sent. When a form submission triggers an email, Mail Guard passes it through
the same Gemini AI analysis that handles inbound spam detection. If the content looks like spam,
the email is held in a review queue instead of being sent.
The mail never leaves your server. Your sending domain stays clean. You can check the outbound queue in the plugin admin, release any false positives, and delete the confirmed spam. The whole workflow takes a few minutes and you get a clear record of what was blocked and why.
Mail Guard also has a whitelist (email addresses or domains that always get through) and a ban list (addresses or domains that always get blocked), so you can tune it without touching the AI sensitivity setting.
What about transactional email services?
If you're already routing wp_mail() through SendGrid, Postmark,
or Amazon SES, those services have their own spam filtering before delivery. That helps, but
it doesn't stop the spam from being sent in the first place. Sending services measure your
spam complaint rate too, and if enough of your relayed spam gets marked as junk by recipients,
your sending service account can be suspended.
Mail Guard stops the problem before the message enters any mail pipeline, whether you're using PHP mail, a plugin like WP Mail SMTP, or a third-party transactional service.
Monitoring what's going out
A side benefit of Mail Guard is visibility. Most WordPress site owners have no idea how many emails their site sends per day. The Mail Guard queue and logs give you a complete picture: how many messages were sent, how many were held, from which form, with what content. That's useful data even if you never have a deliverability problem.
Ready to put this into practice?
QWeb Spam Shield AI is ready to install on any WordPress site. Start a 7-day free trial. No card charged until day 8.
Start free trialMore articles