When WordPress emails disappear, first determine whether the site failed to generate the message or the mail system failed to deliver it. Check the recipient and sender settings, trigger one controlled test, then follow the result through your mail or hosting logs. Installing another mail plugin before making that distinction can hide the original problem.
Check which messages are failing
Trigger one email that normally fails, such as a password reset, contact form notification, or order email. Record the time, recipient address, and message type.
Then test a different WordPress email. For example, if contact form notifications fail, request a password reset for a test administrator account.
The pattern narrows the cause:
- One form or plugin fails: inspect that plugin’s notification settings and logs.
- Every WordPress email fails: investigate the site-wide mail configuration, host restrictions, or SMTP connection.
- Messages reach some providers but not others: focus on DNS authentication, bounces, and recipient filtering.
- Messages arrive in spam: WordPress generated the mail, but the sender identity or reputation needs attention.
Check spam, quarantine, mailbox rules, and storage limits before changing the site.
Verify the recipient and sender addresses
In Settings > General, confirm that the Administration Email Address is valid. If you have command-line access, you can read the same value without changing it:
wp option get admin_email
The wp option get command only retrieves the saved option.
For contact forms, ecommerce notifications, and membership emails, inspect the plugin’s own recipient field as well. These settings can differ from the WordPress administration address.
Next, check the message’s From address. Use an address on a domain you control, such as [email protected]. Do not use the visitor’s address as the sender on a contact form. Put the visitor’s address in Reply-To instead.
WordPress normally sends messages through wp_mail(). A successful call means the request was accepted for processing; it does not prove that the recipient received the message.
Determine whether WordPress generated the email
Use the email log supplied by your existing SMTP plugin or mail provider. Search for the test message by timestamp and recipient.
If no entry exists, the plugin or feature may not be calling WordPress mail at all. Check:
- Whether that notification is enabled
- Whether its recipient field is empty or malformed
- Whether an order, form, or account reached the status that triggers the message
- Whether a queue or scheduled action is stalled
- Whether another plugin suppresses or replaces outgoing mail
If WordPress reports a mail error, keep the exact error text. Authentication failures, connection timeouts, rejected sender addresses, and quota errors require different fixes.
If the message appears as sent in the site log, continue to the provider’s activity or delivery log. That is where you can see whether the provider accepted, deferred, bounced, or rejected it.
Configure authenticated SMTP
Default server mail can work, but many hosts restrict it, and recipient systems may distrust messages that are not authenticated. An SMTP plugin connects WordPress to a mailbox or transactional email provider using that provider’s supported credentials.
Before changing the configuration, save the current plugin settings. Then:
- Choose the mailer for your actual provider.
- Enter the host, port, encryption method, and credentials exactly as documented by that provider.
- Set the From address to the verified sender or domain.
- Enable any option that prevents other plugins from replacing the From address, if your SMTP plugin provides one.
- Send a test message to an address you can inspect.
Use your provider’s official setup guide rather than guessing port and encryption combinations. For example, see the SMTP instructions for Amazon SES, Mailgun, Postmark, or Twilio SendGrid. If the connection times out, ask the host whether outbound connections to the required SMTP port are allowed.
Do not paste mailbox passwords into support tickets or screenshots. Prefer an app password, API key, or restricted SMTP credential where the provider supports one.
Check the delivery response
A mail provider’s log is more useful than a WordPress “sent” notice. Consult the provider’s official documentation for the exact meaning of its delivery statuses and response codes.
- Accepted or delivered: Check spam, quarantine, mailbox rules, and the full message headers.
- Deferred: The receiving server has temporarily delayed the message. Review the response code and retry policy.
- Bounced: Correct the address or follow the rejection reason.
- Rejected for authentication: Check the From domain, SPF, DKIM, and DMARC.
- Authentication failed: Replace or correct the SMTP credentials.
- Quota or rate limit exceeded: Reduce sending or raise the provider limit.
Common providers document these records in their delivery-log guides, including Amazon SES event types, Mailgun events, Postmark activity and events, and the Twilio SendGrid Email Activity Feed.
If no connection reaches the provider, review the SMTP plugin’s error log and the host’s mail restrictions.
Verify SPF, DKIM, and DMARC
These records are published in DNS for the domain used in the From address.
SPF identifies systems allowed to send mail for the domain. Add the exact value supplied by your mail provider. A domain should not have multiple separate SPF records; update the existing record according to the provider’s instructions.
DKIM lets the provider sign outgoing messages. Copy the selector and DNS value exactly. DKIM will not pass until the provider can see the published record and signing is enabled.
DMARC tells receiving systems how to handle messages that fail authentication and provides reporting. Set it up only after identifying every legitimate sender for the domain. Starting with a monitoring policy can expose alignment problems before stricter enforcement. Google’s first-party documentation explains DMARC setup and rollout.
DNS changes can take time to appear. Check the records through your DNS provider and then use the mail provider’s verification tool. Do not delete unfamiliar mail records until you know which service uses them.
Google’s email sender guidelines describe the authentication and message requirements used when delivering mail to Gmail accounts.
Rule out a plugin conflict
If mail stopped after an update or configuration change, reproduce the test on a staging site with only the mail-related plugin and the affected form or ecommerce plugin active.
Reactivate other plugins individually until the failure returns. WordPress documents this isolation method in its troubleshooting guidance.
Do not deactivate payment, security, membership, or caching plugins on a busy production site without understanding the effect. Use staging or a maintenance window, and restore the original plugin state after testing.
If email works with plugins isolated but fails under the normal configuration, send the conflicting plugin vendors the error message, timestamp, and relevant mail headers. Remove credentials and personal message content first.