---
title: Contact Form 7 not Sending Emails
date: 2014-06-04T10:59:26+00:00
modified: 2019-04-08T07:39:33+00:00
image:: https://kaspars.net/wp-content/uploads/2019/04/storage-contact-form-7@2.png
permalink: https://kaspars.net/blog/contact-form-7-not-sending-emails
post_type: post
author:
  name: Kaspars
  avatar: https://reverse.kaspars.net/gravatar/avatar/92bfcd3a8c3a21a033a6484d32c25a40b113ec6891f674336081513d5c98ef76?s=96&d=mm&r=g
post_tag:
  - Contact Form 7 Storage
  - How to
  - Plugin
category:
  - WordPress
---

# Contact Form 7 not Sending Emails

**Update:** I’ve created the “[Storage for Contact Form 7](https://preseto.com/go/cf7-storage)” plugin which saves all form submissions securely in your WordPress database so they never get lost when the email delivery fails. [Learn more →](https://preseto.com/go/cf7-storage)

[![Storage for Contact Form 7](https://kaspars.net/wp-content/uploads/2019/04/storage-contact-form-7@2.png?strip=all&quality=90&resize=1024,521)](https://preseto.com/go/cf7-storage)Save contact form entries in WordPress database.It is the most common complaint that I see on the [support forum](http://wordpress.org/support/plugin/contact-form-7) for the [Contact Form 7 plugin](http://wordpress.org/plugins/contact-form-7/). This issue is very hard to debug because the plugin relies exclusively on email for form submission delivery. In the following article I am going to explain the main reasons for failed contact form deliveries and offer solutions to avoid losing those business leads and form entries.

### Why it Happens?

Spam filters are smart. By default, Contact Form 7 is configured to send form submissions as if they originated from the email account of the person submitting the form. I consider this the main reason why they are being rejected and not being delivered to your inbox. Would you trust an email that only “appears” to be sent by PayPal or Amazon? Here is why it happens.

**The IP address of your website (which is sending the email) does not belong to the sender’s email domain.** The receiving mail server does a reverse DNS lookup to verify if the sending IP address resolves to the domain of the sender. This check will always fail if the `From` header is set to use the senders email address (which is `[your-email]` by default) without additional information about the origin of the email.

### Add Required Email Headers

One possible solution is to add two additional email headers — `Sender` and `Reply-To` to all emails, like so:

```
Sender: noreply@yourdomain.com
Reply-To: [your-name] <[your-email]>
```

where `Sender` is a valid or fake email address that includes the domain name of your website, and `Reply-To` is the senders email address (same as `From`). Here is an example from an application form on [WordPress Blogroll](http://wproll.com/submit):

![Contact Form 7 mail header configuration](https://kaspars.net/wp-content/uploads/2014/06/mail-contact-form-7-email-headers.png?strip=all&quality=90&resize=684,437)

These headers will inform the receiving mail server that the email was sent by your website on behalf of the sender. Please note that this is not a guaranteed fix and solution as there are many other factors that go into filtering unwanted and spam messages. With this change we are just telling the mail servers about our true intentions and why the message appears like it does.

### Store Form Submissions in WordPress

If contact forms are critical to your business and you can’t afford to miss a single inquiry or lead due to email failure, you should use a **form entry capture and storage plugin** for Contact Form 7.

[![Storage for Contact Form 7 plugin](https://kaspars.net/wp-content/uploads/2014/06/storage-for-contact-form-7-banner.png?strip=all&quality=90&resize=800,407)](https://preseto.com/go/cf7-storage)

I have created the **[Storage for Contact Form 7](https://preseto.com/go/cf7-storage)** plugin which keeps copies of all Contact Form 7 submissions (including attachments) safely in your WordPress database. It is available [on CodeCanyon for only $19](https://preseto.com/go/cf7-storage). This plugin will ensure that you never miss a single form inquiry and submission even if you email stops working.

Please leave a comment below if you have any questions about the plugin.