SKR Tips logo SKR TipsWebsite tips that actually work
WordPress

How to Set Up WordPress SMTP So Site Emails Arrive

A new member signs up for your guild site, waits for the welcome email, and nothing arrives. Password resets vanish, contact form messages never reach you, and you only find out when someone complains on Discord.

A laptop on a desk showing a website admin dashboard with an email settings screen, a phone beside it displaying a new welcome email

A new member signs up for your guild site, waits for the welcome email, and nothing arrives. Password resets vanish, contact form messages never reach you, and you only find out when someone complains on Discord. Setting up WordPress SMTP fixes this in most cases, and it takes about 20 minutes once you know which settings matter.

Below: why mail fails, which service to pick, the setup steps, and how to confirm delivery.

Why WordPress emails go missing

Out of the box, WordPress sends email through a PHP function called wp_mail, which hands the message to whatever mail program your web host runs on the server. That server was built to host websites, not to deliver mail. Gmail, Outlook and Yahoo look at where a message came from, and a shared hosting server with no proof that it may send for your domain looks a lot like a spammer.

The result is one of three outcomes:

  • The message is rejected outright and silently dropped.
  • It is accepted but sent straight to spam.
  • It arrives hours late because the receiving server throttled it.

None of these show up as errors in your dashboard. WordPress thinks the email went out, so you get no warning at all.

What WordPress SMTP actually changes

SMTP is the standard protocol mail servers use to pass messages to each other. When you configure WordPress SMTP, you tell the site to stop using the host's mail program and instead log in to a proper sending service with a username and password or an API key. That service has a good sending reputation, signs your messages, and publishes the DNS records that prove the mail is allowed.

Three DNS records do most of the work:

  • SPF lists which servers may send mail for your domain.
  • DKIM adds a cryptographic signature that receiving servers can verify.
  • DMARC tells receivers what to do when SPF or DKIM fails, and sends you reports.

Since early 2024, Gmail and Yahoo require SPF and DKIM for most senders, plus a DMARC record for anyone sending in bulk. A plugin alone does not satisfy those rules. The DNS records are the part people skip, and they are the part that decides whether mail gets through.

Choosing a sending service for a small site

A fan site or clan site rarely sends more than a few hundred emails a month: registrations, password resets, comment notifications and form messages. That volume fits inside most free tiers.

OptionTypical free allowanceGood forWatch out for
Transactional service (Brevo, SendLayer, Mailgun style)About 100 to 300 emails a dayMost community sitesSome free plans add a small footer or expire after a trial
Your own Google Workspace or Microsoft 365 mailboxHundreds per day per userSites that already pay for business emailNeeds app passwords or OAuth setup
Host's own SMTP accountVaries, often 100 to 500 per hourQuick fix on decent hostsShares reputation with other customers
Personal Gmail accountAbout 500 per dayTesting onlyFrom address must be the Gmail address, which hurts trust

For most gaming communities I recommend a dedicated transactional service. It keeps site mail separate from your personal inbox, and if a spam bot hammers your registration form, the damage stays inside that account.

How to set up WordPress SMTP step by step

Take a fresh backup before you start. Plugin changes rarely break anything, but a proper WordPress backup costs nothing and saves an evening if something goes wrong.

  1. Create the sending account. Sign up with your chosen service and add your domain, for example yourguild.com.
  2. Add the DNS records. The service shows you an SPF value, one or two DKIM records and usually a DMARC suggestion. Add them in your domain registrar or DNS host. If you already have an SPF record, merge the new include into it instead of creating a second one, because two SPF records break both.
  3. Wait for verification. DNS changes take anywhere from 5 minutes to a few hours. The service dashboard will show green ticks when it can see the records.
  4. Install one SMTP plugin. WP Mail SMTP, FluentSMTP and Post SMTP all work well. FluentSMTP is free with no upsell nags, which I like for volunteer run sites.
  5. Enter the connection details. Pick your service from the list if it has a native integration and paste the API key. Otherwise use generic SMTP: the host name, port 587 with TLS, and the username and password from the service.
  6. Set the From address. Use an address on your own domain, such as [email protected] or [email protected], and tick the option to force it on every message so other plugins cannot override it.
  7. Send a test email. Every SMTP plugin has a test tool. Send one to a Gmail address and one to an Outlook address.

Checking that it really worked

Arriving is not the same as arriving properly. In Gmail, open the test message, click the three dot menu and choose "Show original". Look for three lines near the top: SPF PASS, DKIM PASS and DMARC PASS. If any says FAIL or is missing, go back to the DNS step. A common mistake is a DKIM record pasted with an extra space or with the domain name added twice by the registrar.

Then turn on email logging in your SMTP plugin. FluentSMTP and WP Mail SMTP both keep a log of every message and whether the service accepted it. When a member says they never got a reset link, the log tells you in seconds whether the site sent it.

Why you should not install three mail plugins at once

A common forum tip is to stack an SMTP plugin, a separate email log plugin and an email template plugin. I would push back on that. Each one hooks into wp_mail, and when two plugins both try to replace the mailer, the last one to load wins without telling you.

Pick a single plugin that handles sending and logging together. If you need nicer templates, see if your membership or forum plugin already offers them. Fewer moving parts means fewer silent failures, and it keeps your plugin list short. If you have tried several mail plugins over the years, our guide to removing unused WordPress plugins shows how to clear the leftovers they leave in the database.

Keeping site email healthy over time

Once it works, a few habits keep it working:

  • Add a CAPTCHA or honeypot to registration and contact forms. Spam signups trigger welcome emails to fake addresses, and high bounce rates damage your sending reputation.
  • Check the email log once a month for a run of failures.
  • Read the DMARC summary reports, or point them at a free report reader, to catch anyone spoofing your domain.
  • Rotate the API key if a volunteer with admin access leaves the team.

More practical setup guides for community sites are collected in our WordPress section.

Frequently asked questions

Do I need an SMTP plugin if my host says email works?

Your host's mail may send, but sending is not the same as being delivered. Without SPF, DKIM and a reputable sending service, a large share of messages can land in spam. A quick test with "Show original" in Gmail will tell you where you stand.

Which port should I use for WordPress SMTP?

Use port 587 with TLS in almost every case. Port 465 with SSL also works on many services. Avoid port 25, since many hosts block it to stop spam.

Will an SMTP plugin slow down my WordPress site?

Not in any way visitors will notice. The plugin only runs when an email is sent, and API based connections usually finish in well under a second. Logging adds a small database table, which you can set to clear old entries after 30 or 90 days.

SF
Saskia Ferrante

Saskia has built WordPress sites for clients since the early 2010s and tested more themes than she can remember. She edits SKR Tips and writes about themes, builders and plugins.

More posts by Saskia

More in WordPress

01doorganico 084goad 3hot8 4465456 after5internprogram ahandfulofblessings ahmadpc ahomcybersecurity allodialresources annodex antiquesandperiodcollectibles aotc asianworldkashmir beedlectrics bloggertemplatefree bluefeatheragency bodyweightsolution campaign08blog carfixadvisor catstreetcollective cbstvsports cnfanspurchasing committeeof500yearsofdignityandresistance covertopsdjs cs-kaiyuangame cuestacomunicaciontotal cxoutlet dancebetgame deskgearhub destinyvillastay detectmagazine di33 diamondsteelbuildings donmo dyanadropship emarsysfinance emimattl escapechan eskitarih evautoplay everythingweddings-orlando farmzone feedviewerapp foxstudiosscratch gamevui123 gleasongrade greetingsday hacklabasu haskell iw-kaiyun jagoanproperti jilidskripsi joltbusinessfinance juegodepokergratis juegospucca kaeru-festival latestmehndidesigns lestanzediottaviano litemagazines localcommunityhero lustrsazan mariashebets menswheels newwebstechs1 nikkit ootheday oxigenvpn plurfitness prefetial probudgetcarpetcleaning psychicmrsmartin pyaten qvantor rejoignezlogis rexzbot riselayouts ruchin rwxqsgd5 sakaltime shibiaowang shop-bot strcoding tetapatrium topselller uneplanteartificielle vipertechcr webtech1223411 wo-kygaming yamaha-mekar yeknava yoybuysheets zenunwa yamaha-mekar jilidskripsi ankertoto ankertoto ankertoto ankertoto