What is the best way to set up email on WordPress?

Install a mailer plugin and point it at a transactional email provider. This is the setup that works reliably across every hosting environment, authenticates correctly at Gmail and Microsoft 365, and scales from a low-volume brochure site to a WooCommerce store sending thousands of order confirmations. Every other approach (hoping the host’s default sending path works, using a personal Gmail account as SMTP, forwarding through a Workspace user) either fails outright at scale or fails at the deliverability requirements introduced by Gmail and Yahoo in February 2024.

The three components: a mailer plugin (WP Mail SMTP, FluentSMTP, or Post SMTP), a transactional email provider account (Postmark, SMTP2GO, Brevo, Amazon SES, Resend, Mailgun), and SPF plus DKIM records published on the site’s domain. Miss any one and the setup either works unreliably or fails authentication at the major mailbox providers.

The three components, and why each is non-optional

A mailer plugin. WordPress’s default sending path calls PHP’s mail() function, which is disabled on most managed hosts and throttled on most shared hosts. A mailer plugin replaces that path with an authenticated SMTP or API connection. FluentSMTP is the strongest free option: no upsell pressure, OAuth for Gmail and Microsoft 365, no paid-tier gate on any provider. WP Mail SMTP is the most-installed and works fine on its free tier for basic SMTP, though Microsoft 365 OAuth and Amazon SES sit behind Pro. Post SMTP is a reasonable third option, particularly for multi-site estates that need mobile alerting.

A transactional email provider. The plugin needs somewhere to send. The provider gives you an authenticated outbound pipeline, a documented DKIM key, and (crucially) a reputation warehoused separately from your host’s shared-IP reputation. For low-volume sites (under a few thousand messages a month), Postmark is the cleanest default for transactional mail and SMTP2GO has the most generous free tier at 1,000 messages per month with no card required. For sites that already use AWS, Amazon SES is the cheapest at any real volume. For sites that also want a marketing side, Brevo covers both from one account. See transactional email providers for the full catalogue.

SPF and DKIM published on your domain. These are the DNS records that let Gmail and Microsoft 365 verify that the mail arriving from your provider is actually authorised to send as your domain. Without them, Gmail rejects the mail outright as of February 2024, and Microsoft 365 downgrades to Junk. The provider’s onboarding documentation tells you exactly which records to publish. See How to set up DNS for WordPress email: SPF, DKIM, DMARC for the record shapes and the reason each one matters.

The setups that do not work

PHP’s mail() function alone. Disabled on managed WordPress hosts (Kinsta, WP Engine, Flywheel), throttled on shared hosts, and unauthenticated even where it does run. Mail leaves the host’s shared IP with no SPF alignment against your domain and no DKIM signature. Gmail rejects it. This is what happens when you install WordPress and never configure anything.

A personal Gmail account as SMTP. Google closed the “less secure apps” toggle in May 2022, then completed enforcement of the basic-authentication cutoff in March 2025. Sending through a @gmail.com account also aligns DKIM to gmail.com, not to your domain, which defeats the point of publishing DKIM for your site in the first place. See What is the difference between Google Workspace Gmail and free Gmail? for why the free tier can’t sign mail as your custom domain.

A Google Workspace or Microsoft 365 mailbox as the transactional relay. Works technically, and the OAuth flow in FluentSMTP or WP Mail SMTP handles the connection cleanly. Fails at the daily send limits (Workspace caps a paid user at 2,000 unique external recipients per day; Microsoft 365 caps a mailbox at 10,000 recipients per day at 30 messages per minute) once a site starts pushing real transactional volume. Fine for a low-volume site where the sending mailbox is a real human inbox; wrong tool for a WooCommerce store or any high-volume transactional workload.

The host’s SMTP with a cPanel mailbox. Ties your WordPress site’s email reliability to a mailbox that a human might rename or whose password might rotate silently. Shared-hosting IP reputation is mediocre. And most hosts do not DKIM-sign for the customer’s domain, so authentication fails at the receiving end even when the SMTP handshake succeeds. See Best way to set up SMTP for client websites for the failure modes of this pattern at scale.

The setup process

  1. Choose a provider. Match the provider to your sending volume and use case; see transactional email providers for the comparison.
  2. Sign up and verify your domain. The provider will give you a list of DNS records to publish: an SPF include, one or two DKIM records, sometimes a return-path CNAME.
  3. Publish the DNS records at your domain registrar or DNS host. Wait for propagation (a few minutes to a few hours).
  4. Install a mailer plugin. FluentSMTP is the strongest free option.
  5. Configure the plugin against your provider using either the provider’s SMTP credentials or its API key. The plugin’s setup wizard walks the specific fields.
  6. Set an explicit “From” address on your domain ([email protected] or similar) inside the plugin, and enable “Force From Email” so that WooCommerce and other plugins can’t override it.
  7. Send a test message. The WordPress email test suite covers the checks that matter: does mail arrive at Gmail, at Microsoft 365, at Yahoo, and does it authenticate correctly on the way in.

Full walkthrough with the specifics: WordPress email setup: the complete guide.

The single decision that determines whether the setup ages well

Register the provider account against your own domain and your own billing email, not against a personal Gmail. This matters more than any specific provider or plugin choice: it determines whether the sending pipeline survives you leaving the site to a client, a new agency, or a new hosting arrangement. The account is portable because it was opened correctly in the first place.