Contact Form 7 powers millions of WordPress sites, but it’s not for everyone. The plugin lacks a drag and drop interface, requires shortcodes for everything, and offers zero built-in spam…
Table of Contents
Your form submissions go through, entries save to the database, but WPForms not sending email notifications to you or your users.
This breaks the entire purpose of collecting information through WordPress forms. Customers don’t receive confirmation messages, and you miss leads sitting in your dashboard unnoticed.
The problem stems from multiple points in the email delivery chain, from misconfigured SMTP settings to server restrictions blocking outbound mail. Authentication failures, plugin conflicts, and hosting limitations all contribute to notification breakdowns.
This guide walks through diagnosing why your WPForms emails fail and implementing fixes that restore reliable delivery. You’ll learn to configure proper SMTP authentication, resolve common errors, and prevent future notification problems.
Common Causes of WPForms Email Delivery Problems
SMTP Configuration Issues
Missing or incorrect SMTP settings are the primary cause of email delivery failures.
Your WordPress site tries to send emails through a mail server that either doesn’t exist, rejects the connection, or lacks proper authentication credentials. Port blocking by hosting providers (especially ports 25 and 465) stops outbound mail before it leaves your server.
WordPress Mail Function Limitations
The default PHP mail() function is unreliable on most hosting environments.
Shared hosting servers often disable or restrict this function to prevent spam. Without a dedicated mail server, your emails get flagged or dropped entirely before reaching any inbox.
Server reputation problems compound this issue.
Form Notification Settings
Incorrect email addresses in notification settings prevent delivery even when everything else works perfectly.
Disabled notification options mean WPForms never attempts to send emails. Conditional logic rules might block notifications based on specific form field values or user inputs.
Spam Filter and Email Authentication
Missing SPF records tell receiving servers your emails aren’t legitimate.
Lack of DKIM authentication removes cryptographic verification of your messages. When your “From” address domain doesn’t match your actual sending server, spam filters automatically reject or quarantine your emails.
Plugin Conflicts
Other email-related plugins interfere with WPForms’ notification system.
Security plugins like Wordfence sometimes block outbound mail as a false positive. Caching plugins can affect how WordPress forms process submissions and trigger notifications.
Server Resource Limitations
PHP timeout issues kill email processes before they complete.
Memory limit constraints prevent scripts from executing properly. Hosting providers impose email sending rate limits that silently fail when exceeded, especially problematic for high-traffic sites with multiple form submissions.
How to Diagnose WPForms Email Problems
Check WPForms Email Logs
Navigate to WPForms > Tools > Email Logs to view delivery attempts.
Failed emails show error codes that point to specific problems. Look for patterns like consistent failures to one domain or sporadic issues across all recipients.
Test WordPress Email Functionality
Install a plugin like Check Email or WP Mail Logging to verify your site can send any email at all.
Send a test message from WordPress. If this fails, the problem exists at the WordPress or server level, not specifically within WPForms.
Verify Form Notification Configuration
Open your form in WPForms builder and check the Settings > Notifications tab.
Confirm the “Send To Email Address” field contains valid addresses without typos. Verify the “From Email” uses your actual domain (not @gmail.com or @yahoo.com from your domain).
Review Server Email Logs
Access your hosting cPanel or control panel to examine mail logs.
Look for bounce messages, authentication failures, or connection errors. These logs show whether emails leave your server and what happens when they try.
Test with Different Email Addresses
Send test submissions to Gmail, Outlook, and your custom domain addresses.
Some providers block emails from certain servers more aggressively. If Gmail receives emails but your business domain doesn’t, the issue involves DNS records or server reputation specific to your mail server.
Solutions for WPForms Email Delivery Issues
Configure SMTP Plugin
Install WP Mail SMTP or a similar dedicated email plugin.
Connect it to a reliable SMTP service like Gmail, SendGrid, or Amazon SES. Enter your SMTP host, port (typically 587 for TLS), username, and password in the plugin settings.
Test the connection before saving to confirm authentication works.
Fix Form Notification Settings
Ensure your “From Email” matches your domain name exactly.
Change it from [email protected] to [email protected]. Set up a proper “Reply-To” address if you want responses directed to a different inbox than the sender.
Use WPForms smart tags like {field_id=”X”} to dynamically populate notification content from form submissions.
Implement Email Authentication
Add an SPF record to your domain’s DNS settings that includes your mail server.
Configure DKIM by generating keys through your hosting provider or WordPress email settings panel. Set up DMARC policy to tell receiving servers how to handle emails that fail authentication checks.
These three records work together to prove your emails are legitimate.
Resolve Plugin Conflicts
Deactivate all plugins except WPForms and test email delivery.
Reactivate plugins one by one until emails stop working again. This identifies the conflicting plugin without guesswork.
Check if security plugins have email filtering options that need whitelisting for your contact form emails.
Adjust From Email Address
Never use free email provider addresses (Gmail, Yahoo, Outlook) as your “From” address.
These providers implement strict DMARC policies that cause emails to fail when sent from servers they don’t control. Always use an address at your actual domain.
Create a dedicated email like [email protected] or [email protected] for automated notifications.
Increase Server Resources
Edit your wp-config.php file to increase PHP memory limit: define('WP_MEMORY_LIMIT', '256M');
Adjust max execution time in your php.ini file or through your hosting provider’s control panel. Contact your hosting provider if you lack access to modify these settings directly.
Higher resource limits prevent email scripts from timing out during processing.
Advanced Troubleshooting Methods
Debug Mode Activation
Enable WordPress debug mode by adding these lines to wp-config.php:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
Check the wp-content/debug.log file after submitting a form to see detailed error messages.
Database Query Analysis
Access phpMyAdmin through your hosting control panel.
Navigate to the wp_wpforms_tasks_meta table to check if email tasks are being created. Missing records indicate the problem occurs before the email queue, while stuck records suggest delivery process failures.
Web Server Configuration Review
Check your Apache or nginx configuration for email-related restrictions.
Some servers disable the mail() function entirely in php.ini. Look for disable_functions = mail and remove it if present, or switch to SMTP instead of relying on this function.
Third-Party Email Service Integration
Connect to Mailgun, SendGrid, or Amazon SES for reliable transactional email delivery.
These services maintain good sender reputation and handle authentication automatically. They provide detailed logs showing delivery status, open rates, and bounce reasons for every email.
Cost is minimal for typical form submission volumes.
Preventing Future Email Delivery Problems
Regular Email Testing
Send test submissions weekly through your forms to catch delivery failures early.
Set up monitoring alerts that notify you when email delivery stops working. Create a dedicated test email address separate from your main business inbox to track form notification reliability.
Monitor Email Deliverability
Track bounce rates and spam complaints through your SMTP service dashboard.
Watch for sudden drops in delivery rates that signal authentication or reputation issues. Services like Mailgun and SendGrid provide detailed analytics showing which emails fail and why.
Keep Plugins Updated
Update WPForms and your SMTP plugin whenever new versions release.
Outdated plugins contain bugs that cause notification failure or security vulnerabilities that hosting providers block. Enable automatic updates for critical plugins to maintain compatibility with the latest WordPress core.
Maintain Email Authentication Records
Verify your SPF, DKIM, and DMARC records remain correctly configured after any DNS or hosting changes.
Record configurations break when switching hosting providers or updating nameservers. Run quarterly checks using tools like MXToolbox to confirm all authentication passes.
Document Configuration Changes
Keep a log of your SMTP settings, plugin configurations, and DNS records.
Note the date and reason for every change to your email system. When problems occur months later, this documentation speeds up troubleshooting by showing what worked previously and what changed since then.
How WPForms Email Notifications Actually Work
Understanding the notification flow helps pinpoint where failures occur.
When someone submits a contact form, WPForms validates the data and saves the entry to your MySQL database. The plugin then checks notification settings to determine recipient addresses, subject lines, and message content using configured smart tags.
WPForms builds the email using these settings and passes it to WordPress’s wp_mail() function.
WordPress processes the email through any active SMTP plugins or uses the default PHP mail() function if no alternative exists. The mail server receives the message, adds authentication headers (SPF, DKIM), and attempts delivery to the recipient’s mail server.
The recipient’s server performs authentication checks, spam filtering, and reputation analysis before deciding to deliver, quarantine, or reject the message.
Failures happen at multiple points in this chain. Plugin conflicts can prevent wp_mail() from executing, authentication failures cause recipient servers to reject messages, and spam filters quarantine emails with suspicious content or poor sender reputation.
Common Error Messages and Their Meanings
“SMTP Error: Could not authenticate”
Your username or password is incorrect in the SMTP plugin settings, or the mail server doesn’t allow SMTP access from your account.
“Connection timed out”
Your hosting provider blocks the SMTP port you’re trying to use, or the mail server IP address is unreachable from your server.
“Sender address rejected”
The From email address doesn’t exist or your mail server won’t allow sending from that address without proper authentication.
“Message rejected due to spam”
Content triggers spam filters, your server has poor reputation, or authentication records are missing or misconfigured.
“Mailbox full”
The recipient’s email inbox has reached storage capacity and can’t accept new messages until they delete old emails.
“550 5.7.1 Unable to relay”
Your mail server won’t forward emails to external domains because it’s not configured as an open relay or lacks proper authentication.
Plugin-Specific Configuration Tips
WP Mail SMTP Setup
Connect to Gmail using OAuth authentication instead of passwords for better security and reliability.
Choose “Other SMTP” for services like Mailgun or SendGrid, then enter their specific host and port values. Enable the “Return Path” option to properly handle bounced emails.
Test email functionality after initial setup using the built-in test tool.
Gmail SMTP Configuration
Enable “Less secure app access” in Google Account settings if using password authentication (not recommended).
Use App Passwords if two-factor authentication is enabled on your Google account. Set SMTP host to smtp.gmail.com, port to 587, and enable TLS encryption.
Gmail limits daily sending to 500 emails per account.
SendGrid Integration
Generate an API key in your SendGrid dashboard with “Mail Send” permissions only.
Install WP Mail SMTP, select SendGrid as your mailer, and paste the API key. Set your From email to a verified sender in SendGrid settings.
SendGrid provides detailed logs showing delivery status, opens, clicks, and bounce reasons.
Mailgun Configuration
Create a Mailgun account and add your domain to their dashboard.
Verify your domain by adding required DNS records (SPF, DKIM, tracking). Copy your SMTP credentials from the domain settings page and paste them into WP Mail SMTP.
Mailgun’s free tier includes 5,000 emails per month.
Server-Side Considerations
Shared Hosting Limitations
Most shared hosts restrict or disable the PHP mail() function to prevent spam.
Port 25 is typically blocked, forcing you to use ports 587 or 465 for SMTP connections. Rate limits often cap outbound emails at 100-500 per hour, affecting high-traffic sites with multiple forms.
VPS and Dedicated Servers
You control email configuration but inherit responsibility for maintaining mail server reputation.
Install and configure Postfix or similar mail transfer agents for better deliverability. Set up proper DNS records including reverse DNS (PTR) to match your server IP with your domain.
Monitor blacklists regularly since you’re responsible for your server’s sending reputation.
WordPress-Specific Mail Handling
WordPress routes all emails through wp_mail(), which plugins can hook into and modify.
Multiple plugins attempting to handle email simultaneously cause conflicts. The last plugin to hook into wp_mail() typically controls email delivery, meaning plugin load order matters.
Check if other plugins install their own SMTP configuration that overrides WPForms settings.
Testing Email Across Different Providers
Gmail implements strict spam filtering and DMARC policies but has the highest deliverability once properly configured.
Outlook/Hotmail flags emails aggressively based on sender reputation and content analysis, often quarantining legitimate notifications.
Yahoo requires accurate SPF records and sender domain matching, rejecting most emails sent through mismatched servers.
Custom domain emails depend entirely on how the domain owner configured their mail server and spam filtering.
Test your forms by submitting to addresses at each major provider to identify provider-specific delivery issues.
When to Contact Your Hosting Provider
Reach out when you can’t modify PHP settings like memory limits or execution time through wp-config.php or .htaccess files.
Contact them if SMTP ports remain blocked after you’ve configured everything correctly in your plugin. Ask about mail server configuration if emails work through external SMTP but fail when using the server’s built-in mail function.
Request details about their email sending rate limits if you run high-volume forms or multi-step forms that generate multiple notifications per submission.
Good hosts will whitelist your IP on their mail server or provide specific SMTP credentials optimized for your account.
Security Implications of Email Configuration
Storing SMTP passwords in plugin settings exposes credentials if your site gets compromised.
Use environment variables or wp-config.php constants for sensitive information instead of database storage. Enable two-factor authentication on email accounts used for sending to prevent unauthorized access.
Verify your form security settings include spam protection and rate limiting to prevent attackers from using your forms to send mass emails.
Implement CAPTCHA or honeypot fields on public-facing forms.
Regular security audits catch compromised sites being used as spam relays before they damage your sender reputation permanently.
Impact on User Experience
Failed email notifications break the feedback loop between form submission and confirmation.
Users don’t know if their message went through, leading to duplicate submissions and frustrated customers. Form abandonment increases when people don’t trust your forms actually work.
Set up a visible form submission confirmation message as a temporary workaround while fixing email issues, at minimum letting users know you received their information even if the email fails.
Consider implementing form validation that specifically checks email deliverability before showing success messages.
Alternative Notification Methods
Integrate Slack notifications through Zapier or similar automation tools to receive instant alerts about form submissions independent of email.
Use SMS notifications via Twilio for critical forms where immediate response matters more than email reliability. Store all form entries in the WordPress database regardless of email status so you can manually review submissions.
Set up webhook integrations that push form data to external CRMs or project management tools as a backup notification system.
Email should complement, not replace, database storage of form submissions.
FAQ on WPForms Not Sending Email
Why is WPForms not sending emails after form submission?
SMTP configuration issues are the most common cause. Your WordPress site lacks proper mail server authentication, or your hosting provider blocks outbound email.
The default PHP mail() function often fails on shared hosting. Install WP Mail SMTP and connect to a reliable email service like Gmail or SendGrid.
How do I fix WPForms email notifications not working?
Install an SMTP plugin like WP Mail SMTP to replace the unreliable default mail function.
Configure your SMTP settings with proper host, port, username, and password. Add SPF and DKIM records to your DNS settings for authentication, then test email delivery through the plugin’s built-in tool.
Where can I check WPForms email logs?
Navigate to WPForms > Tools > Email Logs in your WordPress dashboard.
This shows all email delivery attempts with timestamps and error messages. Failed emails display specific error codes that help identify whether problems stem from authentication, configuration, or recipient server issues.
What SMTP settings should I use for WPForms?
Use port 587 with TLS encryption for most SMTP services.
Set your From email to match your actual domain (never use Gmail or Yahoo addresses). Enter your mail server hostname, authentication credentials, and enable encryption. Services like Mailgun, SendGrid, or Amazon SES provide these details in their dashboards.
Can plugin conflicts prevent WPForms from sending emails?
Yes, security plugins often block outbound mail as false positives.
Caching plugins interfere with form submission processing. Deactivate all plugins except WPForms, test email delivery, then reactivate one by one to identify conflicts. Check security plugin settings for email filtering options requiring whitelisting.
How do I test if WordPress can send emails?
Install a plugin like Check Email or WP Mail Logging.
Send a test message through the plugin’s interface. If this fails, the problem exists at the WordPress or server level rather than within WPForms specifically. This confirms whether your mail server can deliver any outbound email.
Why do WPForms emails go to spam?
Missing email authentication records (SPF, DKIM, DMARC) cause spam filter rejections.
Using free email addresses like Gmail as your From address triggers spam filters. Your server might have poor sender reputation from previous spam activity. Add proper DNS records and use domain-matched sender addresses.
What does “SMTP Error: Could not authenticate” mean?
Your username or password in the SMTP plugin is incorrect.
The mail server doesn’t allow SMTP access from your account, or two-factor authentication blocks password-based login. Generate an app-specific password if using Gmail, or verify credentials match exactly what your SMTP service provider specified.
How do I add SPF and DKIM records for WPForms emails?
Access your domain’s DNS settings through your hosting provider or registrar.
Add an SPF TXT record like “v=spf1 include:_spf.yourmailserver.com ~all” listing your mail server. Generate DKIM keys through your email service dashboard, then add the provided TXT record to your DNS zone file.
Can I use Gmail SMTP for WPForms notifications?
Yes, but Gmail limits sending to 500 emails daily per account.
Use smtp.gmail.com as host, port 587, and enable TLS encryption. Create an app password if two-factor authentication is enabled. Gmail works for low-volume sites but switch to SendGrid or Mailgun for higher traffic.
Conclusion
WPForms not sending email disrupts your entire lead collection and customer communication system, but the fixes are straightforward once you identify the root cause.
Proper SMTP configuration through dedicated plugins eliminates reliance on unreliable PHP mail functions. Email authentication records prove your legitimacy to receiving servers and bypass spam filters.
Regular testing catches delivery failures before they cost you business opportunities. Document your configuration so you can quickly restore working settings after hosting changes or plugin updates.
The combination of reliable mail server connections, proper DNS records, and conflict-free plugin environments keeps notification emails flowing consistently. Your forms become dependable communication tools rather than silent data collectors missing critical customer touchpoints.
Monitor deliverability metrics and maintain authentication to preserve sender reputation long-term.


