---
title: "The journey of an email"
description: "Follow one WordPress email through BooleanSMTP — simulation check, connection choice, API or SMTP, logs — and what happens when a send fails."
image: "https://booleansmtp.com/docs/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://booleansmtp.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# The journey of an email

import { CheckYourself, EmailJourney } from '@booleanpress/learn';
import { nodes, scenarios } from '../../../data/learn/journey';

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

1. **Simulation check.** If **Email Simulation Mode** is on, the message is recorded and goes no further.
2. **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.
3. **It is sent.** Amazon SES, Google Workspace and Microsoft Outlook connections in API mode send over the provider's API;
   SMTP connections use SMTP, while PHP Mail uses the server's `mail()` function.
4. **It is logged when logging is enabled.** **Email Logs** records it as **Successful** when the send transport reports success;
   that status does not confirm inbox delivery.

## 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

Choose a scenario, then press **Play**, or step with **Previous** and **Next**.

Source: https://booleansmtp.com/docs/learn/how-sending-works/index.mdx
