Wbcom Designs
  • Themes
        • Themes
          • Reign Theme
          • Reign Theme (PeepSo)
          • BuddyX Pro Theme
          • BuddyX Theme
          • View All
        • Reign Bundles
          • Reign for Dokan
          • Reign for WC Vendors
          • Reign for WCFM
          • Reign for LearnDash
          • Reign for LifterLMS
        • Reign Theme Solution
          • Reign for WP Job Manager Theme
          • Reign for WP GeoDirectory Theme
          • Reign for TutorLMS Theme
          • Reign for Sensei LMS Theme
          • View All
  • Plugins
        • Paid BuddyPress Add-ons
          • WB Polls
          • BuddyPress Business Profile
          • BuddyPress Member Blog Pro
          • WB Ad Manager Pro
          • View All
        • LearnDash Addons
          • LearnDash Dashboard
          • LMS Notes
          • Learndash wpForo
          • Reign LearnDash Addon
          • View All
        • Wbcom Addons
          • WooCommerce Addons
          • Free BuddyPress addons
          • PeepSo Addons
          • Miscellaneous Addons
          • View All
  • Use Cases
    • Social Learning
    • Social Marketplace
    • Directory Community
    • Social Job Board
  • Blog
  • Contact us
    • Start a Project
    • Our Services
    • Career
    • Newsletter
  • My Account
    • Docs
    • Support
0

Number of items in cart: 0

  • Your cart is empty.
  • Total: $0.00
  • Checkout
Get a Quote
Wbcom Designs
Wbcom Designs
  • Themes
        • Themes
          • Reign Theme
          • Reign Theme (PeepSo)
          • BuddyX Pro Theme
          • BuddyX Theme
          • View All
        • Reign Bundles
          • Reign for Dokan
          • Reign for WC Vendors
          • Reign for WCFM
          • Reign for LearnDash
          • Reign for LifterLMS
        • Reign Theme Solution
          • Reign for WP Job Manager Theme
          • Reign for WP GeoDirectory Theme
          • Reign for TutorLMS Theme
          • Reign for Sensei LMS Theme
          • View All
  • Plugins
        • Paid BuddyPress Add-ons
          • WB Polls
          • BuddyPress Business Profile
          • BuddyPress Member Blog Pro
          • WB Ad Manager Pro
          • View All
        • LearnDash Addons
          • LearnDash Dashboard
          • LMS Notes
          • Learndash wpForo
          • Reign LearnDash Addon
          • View All
        • Wbcom Addons
          • WooCommerce Addons
          • Free BuddyPress addons
          • PeepSo Addons
          • Miscellaneous Addons
          • View All
  • Use Cases
    • Social Learning
    • Social Marketplace
    • Directory Community
    • Social Job Board
  • Blog
  • Contact us
    • Start a Project
    • Our Services
    • Career
    • Newsletter
  • My Account
    • Docs
    • Support
0

Number of items in cart: 0

  • Your cart is empty.
  • Total: $0.00
  • Checkout
Login
Home » Blog updates » Why Your Website Emails Go Missing and How SMTP Fixes It (Part 4 of 20)

Why Your Website Emails Go Missing and How SMTP Fixes It (Part 4 of 20)

  • March 10, 2026
  • Business, Email Marketing, WordPress Tips
Smartphone displaying email app representing transactional email and SMTP setup

This guide explains exactly why default WordPress email fails, how SMTP works as the fix, and walks you through every major SMTP provider and WordPress plugin option in enough detail that you can pick the right solution for your specific situation and set it up correctly the first time.

Why Default PHP mail() Fails

When WordPress sends an email – whether it is a password reset, a new user notification, a WooCommerce order confirmation, or a contact form submission – it uses PHP’s built-in wp_mail() function, which by default calls PHP’s mail() function on the server. The mail() function sends the email directly from the web server, authenticating as the server’s IP address.

Here is the problem: receiving email servers like Gmail, Outlook, and corporate mail servers use multiple layers of authentication to determine whether an incoming email is legitimate. The key authentication checks are:

  • SPF (Sender Policy Framework): A DNS record that lists which IP addresses are authorized to send email on behalf of your domain. Your shared hosting server’s IP is not listed in your domain’s SPF record, so the email fails SPF.
  • DKIM (DomainKeys Identified Mail): A cryptographic signature on outgoing emails, validated against a public key in your DNS. PHP’s mail() cannot sign emails with DKIM because it does not have access to your DKIM private key.
  • DMARC: A policy that tells receiving servers what to do when SPF or DKIM fails. If you have a strict DMARC policy (quarantine or reject), emails failing SPF/DKIM either go to spam or are rejected entirely.
  • Sender reputation: Shared hosting servers host thousands of sites and often have poor IP reputation due to other sites on the same server sending spam. A single spammer on your shared host can cause legitimate emails from every site on that IP to be flagged.

The result is that emails sent via PHP mail() are either silently dropped, delivered to spam, or rejected with a bounce – and you often have no way to know which happened because there is no delivery tracking.

PHP mail() does not send email. It creates a message and drops it at the local mail transfer agent, hoping it gets delivered. Whether it actually reaches the recipient is entirely outside your control.


How SMTP Works

SMTP (Simple Mail Transfer Protocol) is the standard protocol for sending email. When you configure your WordPress site to use SMTP, you are telling it to hand off outgoing email to a dedicated email delivery service (an SMTP relay) that has proper authentication, IP reputation, and delivery infrastructure.

The SMTP relay authenticates with your credentials, signs outgoing emails with DKIM using its own keys (which are listed in your domain’s DNS), and routes the message through its delivery infrastructure – IP addresses with established reputation and dedicated relationships with major receiving email providers like Gmail and Microsoft.

The key difference: with PHP mail(), your site is trying to deliver email itself. With SMTP, your site is handing the email to a specialist whose entire job is reliable email delivery. The SMTP provider handles deliverability, bounce handling, reputation management, and compliance. You get back delivery receipts and email logs so you can actually confirm whether messages were delivered.


SMTP Provider Comparison

ProviderFree TierPaid PricingBest ForStandout Feature
Postmark100 emails/month$15/mo for 10K emailsTransactional email, high deliverabilityIndustry-leading deliverability, excellent logs
Amazon SES62,000 emails/month (from EC2)$0.10 per 1,000 emailsHigh volume, cost-sensitiveExtremely low cost at scale
SendGrid100 emails/day$19.95/mo for 50K emailsTransactional + marketing email comboBroad API, good documentation
Mailgun100 emails/day (trial)$35/mo for 50K emailsDevelopers, API-first approachPowerful email API, webhooks
Brevo (formerly Sendinblue)300 emails/day$25/mo for 20K emailsBudget transactional + marketingMost generous free tier for beginners
SMTP2GO1,000 emails/month$15/mo for 10K emailsSimplicity-focused, good deliverabilityEasy setup, reliable SMTP relay
Gmail SMTP (personal)500 emails/dayFree (Google account)Personal projects onlyEasy setup, but rate-limited
Google Workspace SMTPIncluded with Workspace plan$6/user/mo (Workspace starter)Business email + SMTP togetherIntegration with Google Workspace

Choosing the Right SMTP Provider

Postmark: Best for Transactional Email Deliverability

Postmark is purpose-built for transactional email – password resets, order confirmations, account notifications, form submissions. They do not mix transactional and bulk/marketing email on the same IP infrastructure (a major cause of deliverability problems at competitors that handle both). Their platform has consistently ranked at the top of independent deliverability benchmarks. The logging and diagnostic tools are exceptional – you can see exactly what happened to every email. The trade-off is cost: $15/month for 10,000 emails is more expensive per email than Amazon SES. For business-critical transactional email where deliverability is non-negotiable, Postmark is the right choice.

Amazon SES: Best for High Volume on a Budget

Amazon SES (Simple Email Service) is the cost-efficient choice for high volume sending. At $0.10 per 1,000 emails, sending 500,000 emails/month costs $50 – a fraction of what Postmark or SendGrid would charge. The trade-off is complexity: SES requires more setup (you need to configure sending identities, domain verification, DKIM signing, and potentially request production access to move out of the sandbox). Deliverability is good but not at Postmark’s level. If you are sending hundreds of thousands of emails per month and cost is a primary concern, SES is hard to beat.

Brevo: Best Free Tier for Getting Started

Brevo (rebranded from Sendinblue) offers 300 free emails per day with no credit card required. For a small business site sending form submission notifications, new user emails, and password resets, 300 emails/day is often more than enough. The free tier includes SMTP access, which means you can configure your WordPress site to use Brevo SMTP for no cost. This makes Brevo the natural starting point for anyone who wants to fix their WordPress email without spending money yet.

SMTP2GO: Best for Simplicity

SMTP2GO markets itself on simplicity and it delivers on that promise. Setup is straightforward, their support is responsive, and their deliverability is solid. The 1,000 free emails/month plan is a step up from Brevo’s daily limit. If you want reliable SMTP with minimal configuration complexity and you send less than 1,000 emails/month, SMTP2GO is worth considering.


WordPress SMTP Plugin Comparison

Once you have an SMTP provider, you need a WordPress plugin to configure WordPress to send through that provider’s SMTP server rather than PHP mail(). There are three main options, each with different philosophies:

PluginActive InstallsFree FeaturesEmail LoggingBest For
FluentSMTP300,000+Full SMTP config, multiple connections, loggingYes (free)All-in-one free solution
WP Mail SMTP3,000,000+Basic SMTP configPro only ($49/yr)Beginners, most popular option
Post SMTP300,000+Full SMTP, basic loggingYes (free, limited)Good free alternative

FluentSMTP: The Best Free Option

FluentSMTP is the standout recommendation for most sites. It is entirely free, includes email logging in the free version, supports multiple simultaneous SMTP connections (useful for routing different types of email through different providers), and has built-in integrations with every major SMTP provider (Amazon SES, Mailgun, SendGrid, Postmark, Brevo, SparkPost, and generic SMTP). The interface is clean and modern. The FluentCRM team built it, so it is well-maintained. There is essentially no reason to pay for WP Mail SMTP’s Pro features when FluentSMTP provides them free.

WP Mail SMTP: The Most Installed Option

WP Mail SMTP is the most widely installed SMTP plugin, which means it has the most support documentation and community resources. The free version handles basic SMTP configuration adequately. However, email logging requires the Pro plan ($49/year for a single site license), which is a significant limitation. Without email logging, debugging failed email deliveries is essentially guesswork. The upgrade from WPForms team also means aggressive upselling inside the plugin dashboard. Functionally capable, but FluentSMTP gives you more for free.


Setting Up FluentSMTP with Brevo (Step-by-Step)

Here is a complete walkthrough for setting up reliable WordPress email using FluentSMTP and Brevo (free tier). This combination is suitable for sites sending up to 9,000 emails per month at zero cost.

Step 1: Create a Brevo Account

  1. Go to brevo.com and create a free account. No credit card required.
  2. Verify your email address.
  3. Complete the account setup, including your sender name and sender email address.
  4. Go to Account Settings > SMTP and API > SMTP tab.
  5. Note your SMTP server (smtp-relay.brevo.com), port (587), login (your email), and SMTP key (you may need to generate one by clicking “Generate a new SMTP key”).

Step 2: Verify Your Sending Domain

  1. In Brevo, go to Senders & IP > Domains.
  2. Click “Add a domain” and enter your domain name.
  3. Brevo will provide DNS records to add: a TXT record for domain verification, a DKIM TXT record, and a DMARC TXT record suggestion.
  4. Add these records in your DNS provider (Cloudflare, Namecheap, etc.).
  5. Wait for DNS propagation (usually 15-60 minutes with Cloudflare).
  6. Return to Brevo and click “Verify” to confirm the records are detected.

Step 3: Install and Configure FluentSMTP

  1. In your WordPress admin, go to Plugins > Add New.
  2. Search for “FluentSMTP” and install and activate the plugin by WPManageNinja.
  3. After activation, go to Settings > FluentSMTP (or find it in the left sidebar).
  4. The plugin will walk you through a setup wizard. Select “Brevo” (formerly Sendinblue) as your email service provider.
  5. Enter your Brevo SMTP credentials: username (your Brevo account email) and SMTP key.
  6. Set the “From Email” to an email address on the domain you verified in Brevo (e.g., noreply@yourdomain.com).
  7. Set the “From Name” to your site or business name.
  8. Save the settings.

Step 4: Test the Connection

  1. In FluentSMTP, go to the “Email Test” tab.
  2. Enter a recipient email address (your personal email).
  3. Click “Send Test Email”.
  4. Check that the email arrives in your inbox. Also check the spam folder in case it ends up there (it should not if your DNS records are correct).
  5. If the email does not arrive, check the Email Logs tab in FluentSMTP for the error message.

The wp_mail() Function Explained

WordPress uses the wp_mail() function as its email sending interface. Every plugin and theme that sends email (contact forms, WooCommerce, Easy Digital Downloads, membership plugins, etc.) calls wp_mail() rather than PHP’s mail() directly. This matters because SMTP plugins work by hooking into wp_mail() and intercepting emails before they reach the mail() function, routing them through SMTP instead.

The wp_mail() function accepts these parameters:

  • $to – Recipient email address or array of addresses
  • $subject – Email subject line
  • $message – Email body (HTML or plain text)
  • $headers – Additional headers (From, CC, BCC, Content-Type)
  • $attachments – File paths to attach

WordPress provides several filters that let SMTP plugins and developers modify email behavior: wp_mail_from (filter the From email address), wp_mail_from_name (filter the From name), and wp_mail_content_type (filter the content type, switching between HTML and plain text). SMTP plugins use the phpmailer_init action to configure PHPMailer (the underlying library) with SMTP credentials before each email is sent.


Email Logging

Email logs are your most important debugging tool. An email log records every email your site attempts to send, along with the result (delivered, failed, bounced) and any error messages. Without logging, when a user says “I never received my password reset email,” you have no way to know whether the email was sent, failed to send, or was delivered but went to spam.

FluentSMTP includes email logging in the free version. Each log entry shows the recipient, subject, send time, status, and any error details. You can also resend failed emails directly from the log. Postmark and most other SMTP providers also maintain their own delivery logs in their dashboards – often with more detail than the WordPress plugin log, including whether the email was opened or bounced.


Debugging Failed Email Deliveries

When emails are not arriving, work through this diagnostic process:

  1. Check your SMTP plugin’s email log – did the email send attempt show as successful? If there is an error here, the problem is in the SMTP configuration (wrong credentials, wrong port, firewall blocking the connection).
  2. Check your SMTP provider’s delivery log – did the email leave their servers? If yes but not arriving, the problem is at the receiving end (spam filters, recipient server rejection).
  3. Check the recipient’s spam folder – this solves approximately 40% of “emails not arriving” reports.
  4. Verify your DNS records – use MXToolbox (mxtoolbox.com) to check your SPF record, DKIM signature, and DMARC policy. A misconfigured SPF record is a very common cause of emails landing in spam.
  5. Test with a deliverability testing tool – Mail-Tester (mail-tester.com) gives you a temporary email address to send a test message to, and then scores your email’s deliverability based on SPF, DKIM, DMARC, content, and IP reputation.
  6. Check if the outbound SMTP port is blocked – some hosts block outbound port 25 (standard SMTP). Use port 587 (submission) or port 465 (SMTPS) instead. Most SMTP plugins let you choose the port.

When to Use Which Provider by Volume

Monthly Email VolumeRecommended ProviderApproximate CostNotes
Under 300/day (9,000/mo)Brevo free tier$0Best starting point, no credit card needed
Under 1,000/monthSMTP2GO free tier$0Good alternative to Brevo
1,000 – 10,000/monthPostmark, Brevo paid, or SMTP2GO paid$15-25/moPostmark for transactional priority
10,000 – 100,000/monthPostmark, SendGrid, or Amazon SES$15-100/moSES cheapest at volume
100,000+/monthAmazon SES~$10-50/moSES cost advantage is decisive at scale
Mixed (transactional + marketing)Separate providers for each typeVariesNever mix transactional and marketing on same IP

Common SMTP Configuration Mistakes

  • Using port 25: Many hosting providers block outbound port 25 to prevent spam. Use port 587 (STARTTLS) or port 465 (SSL/TLS) instead.
  • From email mismatch: The “From” email address must match the domain you have verified with your SMTP provider. Sending from info@yourdomain.com while authenticated to a different domain causes failures.
  • Not verifying your domain: Just configuring SMTP credentials without also verifying your sending domain at the provider level means your DKIM signing will not work correctly.
  • Missing SPF record update: After switching to an SMTP provider, you need to add their sending IP/hostname to your domain’s SPF record. Each provider has specific SPF include instructions.
  • Using Gmail SMTP for a production site: Gmail SMTP has rate limits (500/day for regular accounts, higher for Workspace) and is not designed for transactional email from web applications. Use a dedicated SMTP provider.
  • No logging enabled: Configure email logging from day one. When something eventually breaks, you need the logs to diagnose it.

Series Navigation – Website Owner’s Toolkit

This post is part of the Website Owner’s Toolkit – a 21-part series covering every essential service and skill you need to run a professional website. View the full series index here.

  • Previous in series: Part 3 – Free vs Paid SSL Certificates: Do You Really Need to Pay for HTTPS?
  • Next in series: Part 5 – Google Workspace vs Microsoft 365 vs Zoho: Best Business Email for Your Domain
  • Part 5 – Google Workspace vs Microsoft 365 vs Zoho: Best Business Email for Your Domain
  • Part 6 – Why Your Emails Go to Spam and How to Fix It with SPF, DKIM, and DMARC
  • Part 9 – Email Marketing: How to Build a List That Actually Converts
Facebook
Twitter
LinkedIn
Pinterest
Picture of Varun Dubey

Varun Dubey

Varun Dubey is a full-stack WordPress developer with a passion for diverse web development projects. As a BuddyPress Core developer, he continuously seeks to enhance his skills and stay current with the latest technologies in the modern tech world. Connect with him on Twitter @vapvarun.

Let’s talk about your dream project

Schedule a free project consultation with one of our solutions architects today!
Contact Now
Facebook-f X-twitter Youtube Linkedin-in Pinterest-p Instagram Discord

Company

  • About – Agency
  • Our Services
  • Testimonials
  • Affiliates
  • Contact us
  • Start a Project
  • Care Plan
  • Create Ticket
  • Support Portal
  • Refund Policy
  • Release Note
  • Documentation

Expertise

  • Wordpress Customization
  • Hire BuddyBoss Developer
  • WordPress Plugin Dev
  • Hire BuddyPress Developer
  • LearnDash Developer
  • Woocommerce Development

Our Solutions

  • Reign for Dokan
  • Reign for WC Vendors
  • Reign for WCFM
  • Reign for LearnDash
  • Reign for LifterLMS
  • Reign for WP Job Manager
  • Reign for GeoDirectory

© 2026 Wbcom Designs. All Rights Reserved. Designed with Reign Theme

  • Terms & Conditions
  • Privacy Policy
  • Support Policy
WB Ad Manager Pro Is Live - Transform Your Ad Management & Monetization
View Pro Plugin View Free Plugin