The journey of an email
Follow one WordPress email through BooleanSMTP — simulation check, connection choice, API or SMTP, logs — and what happens when a send fails.
Every email your WordPress site sends — a contact form, a password reset, an order receipt — starts with the WordPress
function wp_mail(). BooleanSMTP takes over at that point and decides, in a fixed order, whether and how the message is sent.
The normal path
Section titled “The normal path”- Simulation check. If Email Simulation Mode is on, the message is recorded and goes no further.
- The connection is chosen. A connection the sending code asked for comes first; then the connection that owns the From address; then your Default Connection — or, if none is set, your primary connection. If there is no connection at all, WordPress’s own PHP mail sends it.
- It is sent. Amazon SES, Google Workspace and Microsoft Outlook connections in API mode send over the provider’s API; every other connection sends over SMTP.
- It is logged. Email Logs records it as Successful once the provider accepts it.
When the provider fails
Section titled “When the provider fails”If the provider refuses the message or cannot be reached, BooleanSMTP tries once more on your Fallback Connection, straight away. If that fails too and Retry on other connections is on (it is by default), the message waits in a queue and is retried on your other active connections — after about a minute, then after five — up to two retries. When nothing is left to try, the log entry is marked Failed and your alert channels are notified.
Step through it
Section titled “Step through it”Choose a scenario, then press Play, or step with Previous and Next.
Normal send
- wp_mail() is called. A contact form, a password reset or an order receipt: every WordPress email starts with wp_mail(), and BooleanSMTP takes over from there.
- Simulation check. Email Simulation Mode is off, so the message goes on.
- The connection is chosen. A connection the sending code asked for comes first, then the connection that owns the From address, then your Default Connection — or, if none is set, your primary connection. With no connection at all, WordPress’s own PHP mail sends it.
- It is sent: API or SMTP. Amazon SES, Google Workspace and Microsoft Outlook connections in API mode send over the provider’s API. Every other connection sends over SMTP.
- The provider accepts it. The mail provider takes the message and handles delivery from here.
- It is logged. Email Logs records the message as Successful.
- It reaches the recipient. The provider hands it to the recipient’s mail server. Whether it lands in the inbox or in spam depends largely on your domain’s SPF, DKIM and DMARC records.
Provider is down
- wp_mail() is called. A contact form, a password reset or an order receipt: every WordPress email starts with wp_mail(), and BooleanSMTP takes over from there.
- Simulation check. Email Simulation Mode is off, so the message goes on.
- The connection is chosen. A connection the sending code asked for comes first, then the connection that owns the From address, then your Default Connection — or, if none is set, your primary connection. With no connection at all, WordPress’s own PHP mail sends it.
- It is sent: API or SMTP. Amazon SES, Google Workspace and Microsoft Outlook connections in API mode send over the provider’s API. Every other connection sends over SMTP.
- The provider refuses it. The provider rejects the message or cannot be reached: a wrong key, a suspended account, an outage.
- One try on the fallback. If a Fallback Connection is set, BooleanSMTP tries the message once more on it, straight away.
- Retries on other connections. If that fails too and Retry on other connections is on (it is by default), the message waits in the queue and is retried on your other active connections: after about 1 minute, then 5 minutes — up to 2 retries.
- It is logged as Failed. When nothing is left to try, Email Logs marks the message Failed, with the provider’s error.
- You are alerted. Your alert channels — Slack, Discord or Telegram — get a message, so you hear about it before your visitors do.
Simulation mode on
- wp_mail() is called. A contact form, a password reset or an order receipt: every WordPress email starts with wp_mail(), and BooleanSMTP takes over from there.
- Simulation mode is on. Email Simulation Mode is on, so BooleanSMTP stops the message here — before any connection is chosen.
- It is logged as Simulated. Email Logs records the message under Simulated, so you can see what would have been sent.
- Nothing is sent. No provider ever sees it. A site left in simulation mode is a common reason email never arrives: turn it off in Settings when the site goes live.
Check yourself
All answered — this page is marked done on the Learn path.