What this problem is
Password resets, order notifications, or contact form emails never arrive.
Why it happens
- Default PHP mail is blocked or marked as spam
- Missing SPF/DKIM records for the sending domain
- Hosting limitations on outbound email
Prerequisites
- Access to an SMTP provider (your domain mail server, Gmail workspace, SendGrid, etc.)
- wp-admin access
Diagnosis
- Send a test email from your form or from a mail test plugin.
- Check spam and server email logs if available.
- Confirm the sender address uses a real mailbox/domain.
Step-by-step (detailed)
- Install an SMTP plugin (for example: WP Mail SMTP).
- Configure SMTP host, port, encryption, username, and password.
- Set From Email and From Name consistently.
- Send a test email and confirm delivery.
- Ensure your DNS has SPF and DKIM for the sending domain.
Expected results
- Emails are delivered reliably
- Fewer spam issues
What to do if it fails
- Try a different port (587/465) and encryption mode (TLS/SSL) depending on provider.
- Verify credentials and that SMTP is allowed by the provider.
- If the host blocks outbound SMTP, use an approved transactional email provider.
Best practices
- Use a dedicated sending address (for example: noreply@yourdomain.com).
- Set up SPF + DKIM + DMARC.
- Monitor bounces and delivery logs.