article

Why Your WordPress Contact Form Stops Sending Emails

June 3, 2026

A contact form that worked for months suddenly goes quiet. Submissions show as “sent,” but nothing lands in the inbox. Nine times out of ten this isn’t a plugin bug — it’s email delivery.

WordPress sends mail with PHP’s mail() function by default. That sends from your server with no authentication, so the message claims to come from your domain but can’t prove it. Gmail, Outlook, and most providers now treat that as spam or reject it outright — especially after a host migration or a new email policy. The form “sent” the email; the receiving server threw it away.

Send through authenticated SMTP

The fix is to send through authenticated SMTP. Install an SMTP plugin (WP Mail SMTP or FluentSMTP), then connect a real mailbox or a transactional service like Brevo or SendGrid. Now mail goes out authenticated, from an address that’s actually allowed to send for your domain.

While you’re there, set the “from” address to something on your own domain — not the visitor’s email. A common mistake is sending the notification from the address the visitor typed, which fails authentication instantly.

Add SPF and DKIM records for your sending service so providers trust your domain, then send a test and check the email log. If you build on WordPress and aren’t using SMTP, this isn’t a question of if delivery breaks — it’s when.