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