WordPress Notification Emails Customization Guide

Photo: Unsplash — free to use, no attribution required

Understanding WordPress Email Architecture

WordPress relies on the wp_mail() function for all outgoing email — from user registration confirmations to WooCommerce receipts. Under the hood, this function uses PHP's native mail handler, which has a significant limitation: it does not authenticate with receiving mail servers.

Modern email security relies on a chain of trust. When an email arrives at Gmail or Outlook, the receiving server checks whether the sending server is authorized to send on behalf of that domain. Without SMTP authentication, SPF records, and DKIM signatures, your WordPress emails look indistinguishable from spam to these systems.

The solution is straightforward: configure WordPress to send email through a proper SMTP server. This provides authentication, encryption, and deliverability monitoring — transforming your WordPress email from unreliable to professional-grade.

Choosing the Right SMTP Provider

Before configuring SMTP, gather the following: your SMTP provider credentials (server address, port, username, password), access to your domain's DNS settings (for SPF and DKIM records), and WordPress admin access. If you are using a service like SendGrid, Mailgun, or Amazon SES, create your account and verify your sending domain first.

Your choice of SMTP provider matters. For low-volume WordPress sites (under 500 emails/month), Gmail SMTP or your hosting provider's mail server may suffice. For WooCommerce stores or sites with contact forms that generate more traffic, a dedicated transactional email service like SendGrid, Mailgun, Postmark, or Amazon SES provides better deliverability, analytics, and scalability.

Verify that your hosting environment does not block outgoing SMTP connections. Some shared hosts block port 25 and sometimes port 587. Check with your host or try connecting to your SMTP server on the intended port before beginning plugin configuration.

Detailed Setup Process

In your WordPress dashboard, navigate to Plugins → Add New and search for your chosen SMTP plugin. Install and activate it, then go to the plugin's settings page (usually under WP Mail SMTP → Settings or Settings → FluentSMTP).

Enter your SMTP server details. The common settings are: SMTP Host (your provider's server address, e.g., smtp.gmail.com, smtp.office365.com, or smtp.sendgrid.net), SMTP Port (587 for TLS or 465 for SSL), Encryption (TLS is recommended for port 587), Authentication (enabled), Username (typically your email address or API key), and Password (your email password or API secret).

Set the "From Email" address to match the email account you are authenticating with. Mismatches between the From address and the authenticated account can cause delivery failures or emails being flagged as suspicious. The "From Name" should be your business name or website name for professional appearance.

For Google Workspace or Gmail: use smtp.gmail.com on port 587 with TLS. For Microsoft 365: use smtp.office365.com on port 587 with TLS. For SendGrid: use smtp.sendgrid.net on port 587 with your API key as the password. For Mailgun: use smtp.mailgun.org on port 587 with your Mailgun SMTP credentials.

Verifying Email Delivery

Testing should cover multiple scenarios: send test emails to Gmail, Outlook, and Yahoo addresses to verify deliverability across major providers. Each provider has slightly different filtering criteria, so testing across all three catches issues that testing with just one might miss.

Check the email header information for proper authentication results. Every test email should show SPF: pass, DKIM: pass, and DMARC: pass in the headers. If any authentication check fails, the most likely cause is an incorrect or missing DNS record — go back and verify each record is entered exactly as specified by your provider.

For WordPress sites, test the specific email types your site sends: contact form submissions, WooCommerce order confirmations, password reset emails, and new user registration emails. Some plugins override WordPress email formatting, so verify that each email type looks correct and contains the expected content.

Maintenance and Monitoring

The most common WordPress SMTP issue is "Could not authenticate" errors. This typically means: incorrect credentials (double-check username and password), the account requires an app-specific password (Google and Microsoft accounts with 2FA), or the SMTP port is blocked by your hosting provider (try port 465 with SSL instead of 587 with TLS).

If emails send successfully from the test function but still do not arrive, check your DNS authentication records. Missing or incorrect SPF and DKIM records cause emails to be silently dropped or quarantined by receiving servers. Use MXToolbox or Google's CheckMX tool to verify your records.

For WooCommerce sites, verify that the SMTP plugin processes all WordPress emails — not just wp_mail calls but also WooCommerce-specific email hooks. Some custom themes or plugins bypass the standard email function. Enable email logging in your SMTP plugin to track every outgoing message and identify any that fail.

Frequently Asked Questions

Why is my WordPress site not sending emails?

The most common cause is that your site uses PHP mail() instead of authenticated SMTP. Most hosting servers have poor email configuration, causing messages to fail silently or land in spam. Installing an SMTP plugin like WP Mail SMTP or FluentSMTP and configuring it with a proper email service resolves this issue for the vast majority of WordPress sites.

Which SMTP plugin is best for WordPress?

WP Mail SMTP (by WPForms) and FluentSMTP are the two most reliable options. WP Mail SMTP has the largest user base and supports all major providers. FluentSMTP is free with no premium upsells and supports multiple SMTP connections. Both handle the core function — routing WordPress email through authenticated SMTP — equally well.

What SMTP port should I use for WordPress?

Port 587 with TLS encryption is the recommended standard for SMTP client submission. If your host blocks port 587, try port 465 with SSL encryption as an alternative. Port 25 is typically blocked on shared hosting and should be avoided. Your SMTP provider's documentation will confirm the correct port for their service.

Do I need a paid SMTP service for WordPress?

For sites sending fewer than 100-300 emails per day, free tiers from services like SendGrid (100/day), Brevo (300/day), or your existing Gmail/Google Workspace account may be sufficient. For WooCommerce stores or high-traffic sites, a paid transactional email service provides better deliverability, analytics, and dedicated IP addresses.