Contact Form Not Working: Complete Troubleshooting Guide

Your contact form is not sending emails? This complete guide covers every cause and fix for broken contact forms on PHP, WordPress, and custom websites.

Contact Form Not Working: Complete Troubleshooting Guide

A Broken Contact Form Is a Silent Revenue Killer

Visitors try to reach you, fail, and go to a competitor. Most businesses discover the problem only after a client mentions it — or after weeks of zero inquiries.

Identify the Symptom First

  • Form submits without error but no email arrives?
  • Form shows an error message on submit?
  • Clicking submit does nothing at all?
  • Form submits but thank-you page never loads?

8 Common Causes and Fixes

1. Emails Going to Spam

Cause: PHP mail() sends without authentication, triggering spam filters.
Fix: Switch to SMTP + PHPMailer. Send FROM your domain email ([email protected]).
WordPress: Install WP Mail SMTP, configure with Gmail, SendGrid, or Brevo.

2. Missing SPF / DKIM Records

Cause: Domain lacks email authentication DNS records.
Fix: Add SPF: v=spf1 include:yourhostingprovider.com ~all and DKIM from your email provider.

3. JavaScript Error

Fix: Open Chrome DevTools (F12) → Console tab. Fix any red errors. Common culprits: missing jQuery, plugin conflicts.

4. CSRF Token Expired

Fix: Regenerate token on each page load: $_SESSION["csrf"] = bin2hex(random_bytes(32));

5. Over-Strict Validation

Fix: Test with simple input first. If it works, your regex is blocking valid inputs.

6. Hosting Blocking Outbound Email

Fix: Use external SMTP — Brevo (300 free emails/day) or SendGrid (100/day free).

7. Wrong Form Action URL

Fix: Inspect the form HTML: <form action="/send-message.php">. Verify the script exists on the server.

8. File Upload Exceeds Limits

Fix: Add to .htaccess: php_value upload_max_filesize 10M

Verify Your Fix

  • Check inbox AND spam folder after submitting
  • Use Mail-tester.com to score email deliverability
  • Use MXToolbox to verify SPF/DKIM records

Still broken? Contact me — I fix contact forms as part of my maintenance service.

Share: LinkedIn Twitter WhatsApp