Skip to content
Fix WordPress Form Emails Going to Spam With Gravity SMTP and SendGrid 2

How to Fix WordPress Form Emails Going to Spam With Gravity SMTP and SendGrid

*Note – this video is a bit old, plugins might look a little different, but the information is the same.  

A WordPress contact form can appear to work perfectly while the most important part is quietly failing: the notification email never reaches the inbox.

Sometimes the message goes to spam. Sometimes delivery is inconsistent. In the worst cases, the email seems to disappear entirely.

For a business website, that’s more than a technical inconvenience. A contact form submission could be a new customer, reservation, quote request, appointment, or sales lead. If WordPress isn’t delivering those notifications reliably, the business may never know the lead came in.

In this tutorial, we’ll walk through the email authentication setup I use with Gravity Forms, Gravity SMTP, SendGrid, DNS authentication, and Google reCAPTCHA to improve WordPress form email delivery and reduce spam.

Why WordPress Contact Form Emails Can Go to Spam

WordPress websites frequently generate transactional emails for contact forms, password resets, user notifications, ecommerce orders, and other website activity.

The problem is that simply telling WordPress to send an email doesn’t guarantee that the receiving email provider will trust it.

Email providers evaluate where a message came from and whether the sending system is authorized to send email for that domain.

If the message can’t be properly authenticated, it may be more likely to end up in spam or experience delivery problems.

That’s where a dedicated email delivery service and SMTP plugin can help.

The WordPress Email Setup Used in This Tutorial

For this setup, we’re using several tools together:

Each tool handles a different part of the process.

Gravity Forms collects the lead. Gravity SMTP passes the notification to SendGrid. SendGrid handles the actual email delivery, while DNS authentication helps establish that SendGrid is authorized to send email on behalf of the domain.

How to Set Up Gravity SMTP and SendGrid for WordPress

The complete process involves connecting WordPress to SendGrid, authenticating the website’s domain, configuring spam protection, and then testing the entire workflow from the actual contact form.

  1. Install Gravity Forms. Make sure Gravity Forms is installed, activated, and that your website’s contact form is working correctly.
  2. Install and activate Gravity SMTP. Gravity SMTP will handle the connection between WordPress and the external email delivery service.
  3. Create or log into your SendGrid account. SendGrid will be used to process and deliver the WordPress notification emails.
  4. Create a SendGrid API key. Generate the API credentials needed to securely connect Gravity SMTP with your SendGrid account.
  5. Connect SendGrid to Gravity SMTP. Return to WordPress, select SendGrid as the email provider, and enter the API key generated in SendGrid.
  6. Configure your sender information. Set the default From Email and From Name that should appear on emails sent through the website.
  7. Start SendGrid domain authentication. Inside SendGrid, begin the domain authentication process for the domain being used to send the website’s email.
  8. Add the SendGrid DNS records. SendGrid will provide DNS records that need to be added through the domain’s DNS provider. These may include CNAME and TXT records.
  9. Wait for the DNS records to propagate. DNS changes aren’t always recognized immediately, so allow time for the new records to become available.
  10. Verify the domain in SendGrid. Once the DNS records are available, return to SendGrid and run the authentication verification.
  11. Configure Google reCAPTCHA. Create or configure the appropriate reCAPTCHA credentials and connect them to Gravity Forms.
  12. Add reCAPTCHA to the contact form. Make sure the website form is using the configured spam protection.
  13. Submit a real test through the website. Don’t stop after connecting the services. Fill out the actual public-facing form and submit it just like a visitor would.
  14. Check the receiving inbox and Gravity SMTP logs. Confirm that the notification reaches the intended inbox and that Gravity SMTP reports the message as successfully sent through SendGrid.

Once all of these pieces are working together, you have a much more complete WordPress email delivery system than simply relying on the website’s default mail configuration.

How SendGrid Domain Authentication Works

Connecting the SendGrid API key to Gravity SMTP is only part of the setup.

You also want to authenticate the domain being used to send email.

SendGrid provides DNS records that are added to the website’s domain. These records help establish that SendGrid has permission to send email on behalf of that domain.

This is an important distinction.

We’re not just configuring WordPress to send a message. We’re also giving receiving mail systems additional information they can use to verify the source of that message.

Adding the SendGrid DNS Records

During domain authentication, SendGrid provides the DNS records required for your particular setup.

You’ll need to log into wherever the domain’s DNS is managed and add the records there.

Depending on the configuration, you may be working with records such as:

  • CNAME records.
  • TXT records.

Copy the values carefully. Small differences in a DNS host or value can prevent SendGrid from successfully verifying the domain.

DNS Providers May Handle Host Values Differently

This is important because DNS interfaces aren’t identical.

Another provider, such as GoDaddy, may automatically append the domain or handle the host value differently.

If SendGrid authentication fails, don’t immediately assume that SendGrid, Gravity SMTP, or WordPress is broken.

Look closely at how your DNS provider expects host values to be entered.

The records supplied by SendGrid are the source of truth for what needs to exist, but the way those values are entered into the DNS interface can vary by provider.

Wait for DNS Propagation Before Troubleshooting Too Much

DNS changes don’t necessarily become visible everywhere immediately.

After adding the authentication records, SendGrid may initially report that the domain cannot be verified.

That doesn’t automatically mean you’ve entered something incorrectly.

Give the records some time to propagate and then try the verification again.

If verification continues to fail, check:

  • The DNS record type.
  • The host or name value.
  • The destination or record value.
  • Whether your DNS provider automatically appends the domain.
  • Whether the records have had enough time to propagate.

Configure the From Email and From Name Carefully

Inside Gravity SMTP, configure the default sender information for the website.

This includes the:

  • From Email
  • From Name

The sender should make sense for the website and the domain you’ve authenticated.

Using a consistent, properly configured sender helps create a cleaner email delivery setup and makes the resulting notifications easier to recognize when they arrive.

Add Google reCAPTCHA to Gravity Forms

Email authentication improves how legitimate WordPress emails are sent, but it doesn’t prevent bots from submitting the form in the first place.

That’s why the setup in this tutorial also includes Google reCAPTCHA.

After creating the appropriate reCAPTCHA credentials, connect them to Gravity Forms and add reCAPTCHA protection to the form.

This creates another layer of protection against automated submissions before they generate unnecessary form notifications.

Test the WordPress Form From Start to Finish

One of the most important parts of this entire setup is testing the actual workflow.

Seeing a green status indicator inside a plugin doesn’t necessarily prove that your customer’s contact form notifications are reaching the correct inbox.

Submit the real form.

Use it exactly as a visitor would.

Use a Separate Receiving Email Address

For a useful test, send the form notification to a separate receiving email address rather than simply testing everything with the same account you’re using as the authenticated sender.

This gives you a better representation of what happens when the website sends a real notification to another inbox.

Check the Inbox and Spam Folder

After submitting the form, check the receiving email account.

Confirm that:

  • The email arrives.
  • It arrives in a reasonable amount of time.
  • It appears in the inbox rather than spam.
  • The From Name and From Email look correct.
  • The Gravity Forms notification contains the expected submission information.

If the message arrives successfully in the inbox, that’s a much stronger indication that the complete workflow is functioning correctly.

Check the Gravity SMTP Email Logs

Gravity SMTP provides another useful troubleshooting tool: email logs.

After submitting your test form, open the Gravity SMTP logs and locate the message that was just sent.

The log gives you another place to confirm that WordPress passed the message through the configured email service successfully.

This becomes especially useful when troubleshooting future delivery issues.

If a client says they didn’t receive a form notification, you can check the logs rather than guessing whether WordPress attempted to send it.

Why WordPress Email Logs Are Useful for Client Websites

For a business website, knowing that a contact form submission exists is extremely important.

Without email logs, the conversation can quickly become:

“I never received the email.”

And then you’re left trying to determine whether:

  • The visitor actually submitted the form.
  • Gravity Forms generated the notification.
  • WordPress attempted to send the message.
  • The SMTP provider accepted it.
  • The receiving mail server filtered it.

Logging gives you more visibility into the process and makes future troubleshooting much easier.

SMTP and reCAPTCHA Solve Different Problems

It’s worth separating these two concepts.

SMTP and SendGrid help with email delivery.

reCAPTCHA helps reduce automated form submissions.

Using both gives you a stronger overall contact form setup.

You want legitimate customer submissions to reach the business reliably, while reducing the amount of automated junk that generates unnecessary notifications.

Don’t Assume a Successful Form Submission Means the Email Worked

This is one of the biggest lessons from troubleshooting WordPress contact forms.

A visitor can fill out a form, click Submit, and see a perfectly normal success message even if the notification email never reaches the business.

The front-end form and the email delivery process are separate parts of the workflow.

That’s why a proper test should verify all three:

  1. The form successfully accepts the submission.
  2. The notification is successfully processed through Gravity SMTP and SendGrid.
  3. The notification actually reaches the intended inbox.

If all three work, you have much more confidence that the contact form is doing its job.

Final Thoughts: Make Sure Your WordPress Leads Actually Reach the Inbox

A contact form isn’t useful if the business never receives the leads it generates.

Installing Gravity Forms and seeing a successful submission message is only part of the job.

For the setup demonstrated in this tutorial, the complete workflow uses Gravity Forms, Gravity SMTP, SendGrid, DNS authentication, and Google reCAPTCHA together.

The process is:

  1. Build the form with Gravity Forms.
  2. Install Gravity SMTP.
  3. Connect SendGrid using an API key.
  4. Configure the sender information.
  5. Authenticate the website’s domain through DNS.
  6. Verify the authentication in SendGrid.
  7. Configure Google reCAPTCHA.
  8. Submit a real test through the website.
  9. Confirm the notification reaches the inbox.
  10. Check the Gravity SMTP logs for successful delivery.

It takes a little more work than relying on WordPress’s default email behavior, but for a website that generates real business leads, reliable email delivery is worth setting up correctly.

The contact form isn’t finished when the Submit button works. It’s finished when the lead reaches the person who needs to see it.

Calico Design is a premier web design and marketing agency in the Chicago and Tampa / St. Pete Florida areas. 

Explore Blog

Building a restaurant website in Elementor is usually pretty straightforward — until you get to the menu. A simple menu with an item name, description, and price isn’t difficult. But real restaurant menus aren’t always that simple. You start dealing with different...
Video can make a website look incredible, but it can also become one of the largest files a visitor has to download. This becomes especially important when you’re using autoplaying hero videos, background videos, animated graphics, event footage, or other video-heavy website...
A bigger email list isn’t always a better email list. Clean your lists, save on subscription fees, and show higher open rates! New to EmailOctopus? I switched from Mailchimp and pay half what I used to. Use my referral link to save $15...
Spam is one of the most frustrating problems with WordPress contact forms, especially when the same person or bot keeps submitting the same message over and over again. Standard spam protection can stop a lot of automated submissions, but sometimes a persistent...
What happens when you still have a complete WordPress website sitting on your hosting account, but you can no longer access it through the original domain? This can happen for several reasons. A client may have pointed their domain to a new...
Few things are more stressful than updating a WordPress plugin and suddenly seeing a “There has been a critical error on this website” message. Whether it is JetEngine, WooCommerce, Elementor, or another plugin, a fatal error can lock you out of your...