You install a contact form, test it, and nothing arrives. Or you find it days later in a spam folder. This is not a problem with the form plugin — it is a problem with how the mail is sent.
How WordPress sends mail by default
Out of the box, WordPress uses the server’s own mail function. That is convenient, but from the receiving end there is a problem: there is no way to prove the message really came from your domain.
Mail providers verify senders to stop spam. A message with nothing to verify gets filed as spam or refused outright. That is why direct server sending fails so often.
The fix — connect an SMTP service
The solution is to route mail through an authenticated sending service. Install an SMTP plugin, connect an account, and everything WordPress sends — enquiry notifications, password resets, order confirmations — goes out that way.
If you already have a business mail account you can usually use its SMTP directly; at higher volume a dedicated sending service is better. Either way, what matters is that sends are logged — when an enquiry does not appear, you can tell whether it was never sent or sent and not received.
Three domain records
With SMTP in place, the next step is on the domain side: three DNS records, each doing a different job.
Your sending service will give you the exact values to paste into DNS. With all three in place, spam classification drops noticeably.
One thing to check in the form itself
Even after fixing the path, check the form’s from address. If it sends as the address the visitor typed, that looks like forgery and gets blocked. Send from an address on your own domain and put the visitor’s address in reply-to — that is the correct configuration.
More on mail and server configuration lives in the Servers & infrastructure archive, and sorting out the sending path as part of wider infrastructure work is covered by our optimization program.
Next part
The site now works. The final part is the pre-launch checklist — run it in order and almost nothing surprises you after opening.