HomeGuides › Email that doesn’t arrive

How to test whether WordPress can send email

A good test answers two separate questions: did your server accept the message (that's what wp_mail() reports), and did the receiving mailbox trust it (that's in the delivered message's headers). Send a test, check both, and you know exactly where a problem sits.

Test 1 · Does the server accept mail?

Send a message through WordPress and look at the answer wp_mail() gets. SMTP plugins have a test screen that does this. In Mailbag Contact Form it is Send test email under Mailbag → Settings: it sends a message to the address you choose and shows your mail server's answer word for word — “Could not instantiate mail function.” means PHP mail is off; an SMTP error names the login or connection that failed.

A success here proves the handover worked. It does not prove the email arrived.

Test 2 · Does the message arrive, and where?

Send the test to a mailbox at a large provider — a Gmail and an Outlook address are ideal — and one on your own domain. Check the inbox, the spam folder and any quarantine. Different providers judge differently, so one test address can mislead you.

Test 3 · Why did it land where it landed?

Open the delivered message's source and paste it below. The receiving server's SPF, DKIM and DMARC verdicts, the From and Reply-To addresses, and the program that sent it are all in the headers.

Check a notification email’s headers

This tool runs in your browser with JavaScript on; nothing you paste leaves the page.

Test your real form, not just WordPress

A test message proves the mail path; your form adds its own From, Reply-To and recipients. Send the form once yourself with an address you can read. In Mailbag, that entry appears under Mailbag → Entries with its own mail status, so you can compare what the form did with what the test did — and resend it after you change something.

Mailbag Contact Form is a free contact form that saves every entry before it sends anything, and shows you what happened to each email.

See what it does