Back to Community

Why Your Contact Form 7 Emails Aren't Sending or Showing Data

59 threads Sep 16, 2025 PluginContact form 7

Content

Contact Form 7 is a powerful tool, but few things are more frustrating than discovering your forms aren't working correctly. Based on common community reports, the two most frequent issues are emails not being delivered at all, or emails arriving without the submitted form data, showing only placeholder tags like [your-name] instead.

Why Emails Don't Arrive (The "Success" Message But No Email)

If you see the green "Thank you for your message" success response but never receive an email, the form is submitting correctly, but the delivery is failing at the server level. This is almost never a bug within the Contact Form 7 plugin itself.

Common Causes:

  • Hosting Server Mail Restrictions: Many shared hosting providers block the PHP mail() function that Contact Form 7 uses by default to prevent spam. This is a common point of failure.
  • Email Routing & DNS Issues: Emails sent from your server might be flagged as spam or rejected by receiving providers (like Gmail) due to missing or incorrect SPF/DKIM DNS records for your domain.
  • Plugin or Theme Conflicts: Another plugin or your theme could be interfering with the form's functionality or the mail-sending process.

How to Troubleshoot:

  1. Install an SMTP Plugin: The most reliable fix is to bypass your host's potentially unreliable mail() function. Configure an SMTP plugin like "WP Mail SMTP" to send all WordPress emails through a dedicated SMTP service (like your Gmail/Office 365 account, or a transactional email service like SendGrid). This almost always resolves delivery issues.
  2. Check for Conflicts: Temporarily switch to a default WordPress theme (like Twenty Twenty-Four) and deactivate all other plugins except Contact Form 7. Test the form. If it works, reactivate your plugins one by one to find the culprit.
  3. Use Flamingo: Install the Flamingo plugin. It saves all form submissions in your WordPress dashboard, providing a crucial backup to ensure you never lose a message, even if email delivery fails.
  4. Contact Your Host: Ask your hosting provider if they block the PHP mail() function or have specific requirements for sending mail from scripts.

Why Emails Show Placeholders Instead of Data

If you receive an email but the message body shows shortcodes like From: [your-name] instead of the actual submitted data, the issue is within your form's mail configuration.

Common Causes:

  • Incorrect Mail Tag Setup: The mail template in your form's Mail tab must use the exact same mail tags that are in your form's code. For example, if your form field is [text your-name], the email body must use [your-name].
  • Theme or Plugin Alteration: Some themes or page builders that bundle Contact Form 7 might modify the default form templates, sometimes using non-standard mail tags that don't match the mail setup.

How to Troubleshoot:

  1. Audit Your Mail Tags: Go to your form in the WordPress admin. Click the Mail tab and carefully compare every tag in the "Message Body" section (e.g., [your-name], [your-email]) with the tags used in the Form tab. They must match perfectly.
  2. Use Default Tags: For basic forms, it's often best to use the default mail tags provided in the sample form (your-name, your-email, your-subject, your-message) to avoid typos.
  3. Check Your Form's Code: If you created a custom form, ensure you didn't accidentally change the field names. A field defined as [text client-name] must be referenced in the mail template as [client-name], not [your-name].
  4. Test a Default Form: Create a brand-new form using the default template provided by Contact Form 7. Test this form. If it works, the problem is in the configuration of your original form.

By methodically working through these steps, you can identify and resolve the vast majority of issues that prevent Contact Form 7 from working as expected.

Related Support Threads Support