Docs → Email

Email

Route it properly, prove it sent, check it will land.

Why this area exists. By default WordPress hands every email — contact forms, password resets, order confirmations — to the server’s own mail function, which most hosts throttle, misconfigure or block outright. There is no error and no bounce; the enquiry simply never arrives. SMTP fixes the sending, the log proves it, and Deliverability checks whether it will land in the inbox or the spam folder.

SMTP

MetaWrench → Email → SMTP

Routes all outgoing WordPress email through a real mail provider instead of the server. Pick the provider and the host, port and encryption fill in; you add the login details, set what recipients see as the sender, and send yourself a test.

Settings

Enable SMTP
The master switch. Off, WordPress uses PHP mail(). On, everything goes through the settings below. Shows Active or Not active beside it.
Email Provider
Gmail, Outlook / Office 365, Yahoo Mail, SendGrid, Mailgun, Amazon SES, or Custom. Choosing one fills the server settings and shows provider-specific notes with a link to where the credentials are made.
Server Settings
SMTP Host, Port and Encryption (TLS recommended, SSL, or None). Filled automatically for the named providers; only edit for Custom.
Authentication — Gmail
Your full Gmail address and a 16-character App Password, not your normal password. Generated under Google Account → Security → App passwords; two-step verification must be on first.
Authentication — Outlook / Office 365
Your email address and password. If that fails, generate an App Password in your Microsoft account.
Authentication — Yahoo
Yahoo requires an App Password and shows it once; copy it immediately.
Authentication — SendGrid
Username is always the literal word apikey. Password is an API key with Mail Send permission. You must also verify your sender identity in SendGrid before anything sends. Free plan is 100 emails a day.
Authentication — Mailgun
The SMTP-specific username and password from your Mailgun domain page, not your Mailgun account login.
Authentication — Amazon SES
SMTP credentials generated in the SES console. These are not your AWS access keys.
From Details
From Name and From Email: what recipients see as the sender. The address must be one the provider allows you to send as, usually on your own domain or the account’s own address.
Send Test Email
Save first, then send a test to any address. The result shows on the page. Do this before you trust it with enquiries.

When something looks wrong

Test fails: authentication error
Gmail and Yahoo: you used your login password; make an App Password. Outlook: try an App Password. SendGrid: the username must be exactly apikey. Mailgun and SES: you used account credentials instead of SMTP credentials.
Test fails: connection timed out
Your host blocks outbound SMTP ports. Try port 587 with TLS, then 465 with SSL. If both fail, ask your host to open the port; some shared hosts refuse, in which case use an HTTP-based provider’s SMTP relay on port 2525.
Test sends, but the From address is replaced
The provider rewrites the From to an address it has verified. Either verify your domain with the provider, or set From Email to the account’s own address.
Test sent, but it landed in spam
That is a Deliverability problem, not an SMTP problem. Run the checks on the Deliverability tab.
SendGrid: sender identity not verified
In SendGrid, verify a single sender address or authenticate your domain. Nothing sends until one is done.

Email log

MetaWrench → Email → Email log

Every message WordPress tried to send, with the time, recipient, subject, whether it got out, and the error if it did not. When a customer says they filled in the form and nobody replied, this is where you find out whether the email was ever sent, and why not. The last 500 messages are kept; the tab shows the most recent 100.

Settings

All / Sent / Failed
Filters with counts. Failed is the one to check first.
Search
By recipient address or subject.
Details
For a sent message, what sent it. For a failed one, the error the mail server returned, word for word.
Clear Log
Empties it. It refills as email is sent.

When something looks wrong

A form submission is not in the log
The form plugin did not call WordPress’s mail function, so MetaWrench never saw it. Some form plugins send through their own service. Check the form plugin’s own sending settings.
Status is Sent but the customer never received it
Sent means the provider accepted the message. After that it is in the provider’s hands and the recipient’s spam filter. Run the Deliverability checks, and ask the customer to look in spam.
Failed with “mailbox unavailable” or “user unknown”
The recipient address does not exist. Usually a typo in the form.
Failed with an authentication error
The SMTP credentials stopped working — an App Password was revoked, or an API key expired. Fix on the SMTP tab and send a test.
Every message is Failed
SMTP is on but misconfigured, or the host blocked the port. Send a test from the SMTP tab to see the full error.
Related: SMTP · Deliverability

Deliverability

MetaWrench → Email → Deliverability

Three DNS records decide whether receiving mail servers trust email from your domain. SPF lists which servers may send for you. DKIM signs each message so it cannot be altered. DMARC tells receivers what to do with mail that fails the other two. Without them, mail lands in spam or is rejected, no matter how good the SMTP setup is.

The tab checks all three for your domain, explains each in plain terms, and for anything missing shows the exact TXT record to paste at your DNS host.

Settings

SPF Record
Pass or missing. If missing, the tab shows a record to add, with a note to replace the placeholder with your actual mail provider’s include (include:sendgrid.net, include:_spf.google.com, and so on).
DKIM Record
Pass or missing. DKIM keys are generated by your mail provider, not by MetaWrench: SendGrid, Mailgun, SES and Google Workspace all produce the records for you to add.
DMARC Record
Pass or missing. If missing, the tab shows a record to add. A starting policy of p=none monitors without blocking; move to p=quarantine once SPF and DKIM both pass.
Re-run Checks
After changing DNS. Changes can take up to 24–48 hours to spread.

When something looks wrong

I added the record and it still says missing
DNS propagation. Wait a few hours and re-run. If it is still missing after a day, check the record was added to the right domain and as a TXT record with the exact host shown.
SPF passes but mail still goes to spam
Add DKIM; most receivers treat unsigned mail as suspicious. Then DMARC. Also check the From address is on your own domain, not a Gmail address, since Gmail’s own SPF will not cover your server.
I already have an SPF record and the tab wants me to add another
A domain can have only one SPF record. Edit the existing one to add your provider’s include, rather than adding a second.
Where do I add DNS records
Wherever your domain is managed: your registrar, your host, or Cloudflare if you use it. Look for DNS, DNS zone, or DNS records.
Related: SMTP