A customer fills in your contact form, confirms an order, or asks to reset their password. In all three cases, WordPress is supposed to send an email. And in many cases, that email simply never arrives, with no visible error message on the site. It is one of the most common and most poorly diagnosed problems on WordPress.
The cause is almost always the same: WordPress uses PHP's mail() function by default, a basic sending mechanism never designed for modern deliverability. Major mailbox providers (Gmail, Outlook) filter anything not properly authenticated ever more strictly, and an email sent this way very often ends up in spam, or nowhere at all.
The fix is to route through an external transactional email service wordpress, specialised in sending and tracking automated messages. Several solid options exist, with free plans well suited to small structures. Here is how they compare.
In short: to send reliable emails from WordPress, it is better to use an external transactional email service (such as Brevo or Resend) connected via SMTP or API, rather than PHP's native mail() function. The right choice mostly depends on your monthly volume and whether you also need marketing newsletters alongside transactional email.
Why WordPress's mail() function is not enough
By default, WordPress sends all its automated emails (order confirmations, contact forms, password resets) via PHP's mail() function. This mechanism sends messages with no proper authentication (SPF, DKIM), directly from the hosting's IP address, often shared with hundreds of other sites. The usual consequences:
- messages that systematically land in the spam folder
- a shared IP address sometimes already blacklisted by certain providers
- no real guarantee of deliverability
- no open statistics and no tracking of sending failures
Brevo: the most generous free plan for small structures
Brevo (formerly Sendinblue), a French solution, offers a free plan with a daily email quota, with no time limit and no credit card required. Its main strength is covering both transactional email (confirmations, notifications) and marketing email (newsletters) in a single interface. It is an excellent starting point for a small business with moderate volume that also wants the option of sending an occasional newsletter without switching tools.
Resend: simple and built for developers
Resend is a newer, developer-oriented service, with a very simple API to integrate and a generous free plan in terms of monthly volume. It focuses solely on transactional email, with no marketing features, making it a targeted choice for sites that primarily want reliable, well-tracked emails without extra clutter. It is, in fact, the solution we use at Yumea to handle contact form submissions on our own projects.
Other services worth knowing: SendGrid, Mailgun, Amazon SES
Other legitimate options exist depending on your technical profile and volume:
- SendGrid: historically one of the most widely used, with a more limited free plan than Brevo or Resend, but good integration with many WordPress plugins
- Mailgun: developer-oriented like Resend, with a more limited free quota and often a credit card required right at sign-up
- Amazon SES: very cost-effective at high volume, but with no generous free tier and no simple interface for non-technical use; best suited to those already comfortable with the AWS ecosystem
How to choose based on your usage
The right service mostly depends on your situation:
- a showcase site with a simple contact form is well served by a free Brevo or Resend plan
- an online store with regular order confirmations should look at real monthly volume before choosing between a free and a paid plan
- a need for newsletters alongside transactional email naturally points to Brevo, which covers both uses
- a technical profile wanting fine-grained control over the integration will more naturally turn to Resend or Amazon SES
How to connect the chosen service to WordPress
Whichever service you pick, you need an SMTP or API plugin to replace the native mail() function (WP Mail SMTP, FluentSMTP, or the chosen service's official plugin). This step is always completed by configuring SPF and DKIM records at the domain level, without which even the best sending service will see its deliverability penalised. Our guide covers how to configure WordPress SMTP with Brevo, and our article on SPF, DKIM and DMARC walks through these DNS settings step by step.
When to call in a professional
Configuring a sending subdomain, setting up DNS records correctly, or migrating from one service to another without losing sender reputation demands a level of technical rigour few business owners have time to develop themselves. A DNS misconfiguration can just as easily block all outgoing mail as, in some cases, disrupt the domain's regular incoming email. If your WordPress emails still are not arriving after a first attempt at fixing it, technical support avoids losing even more time.
Frequently asked questions
Is a free plan enough for a professional site? Yes, in most cases, for a showcase site or a small store with a reasonable volume. You simply need to watch the daily or monthly quota and move to a paid plan if volume grows.
Do SPF and DKIM still need to be configured even with a service like Brevo or Resend? Yes, absolutely. These services make sending easier, but it is always your domain name that needs to be properly authenticated to guarantee good deliverability. See our guide on SPF, DKIM and DMARC.
Can you switch email service partway through without risk? Yes, provided the old DNS records stay active during the transition and sending is tested before deactivating the previous service. A well-prepared switch does not disrupt deliverability.
Are your WordPress emails not arriving, or landing in spam? Relax by Yumea diagnoses the cause for free and gives you a clear solution. Request my free diagnosis at /en/relax/

