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

# Delivery statuses

# Delivery Statuses

Every email processed by Mailofly progresses through distinct lifecycle states:

***

## Status Definitions

| Status | Meaning | Next Possible States |
| :- | :- | :- |
| **Queued** | Message accepted by the API and enqueued in our delivery pipeline. | Sent, Failed, Cancelled |
| **Sent** | Message handed off to the recipient's mail server via SMTP. | Delivered, Bounced, Failed |
| **Delivered** | The recipient's mail server acknowledged acceptance (`250 2.0.0 OK`). | Opened, Clicked, Complained |
| **Opened** | The recipient opened the email and downloaded the tracking pixel. | Clicked |
| **Clicked** | The recipient clicked at least one link inside the email. | - |
| **Bounced** | The recipient's server rejected delivery (e.g. mailbox does not exist). | - |
| **Complained** | The recipient flagged the message as spam / abuse via their email provider. | - |
| **Failed** | Message could not be processed due to bad credentials, policy limits, or malformed data. | - |
| **Cancelled** | A scheduled email was cancelled prior to dispatch. | - |

***

## SMTP Diagnostic Codes

When an email bounces or fails, Mailofly captures the exact SMTP error code returned by the receiving MTA:

* `550 5.1.1 User unknown`: The mailbox does not exist.
* `452 4.2.2 Mailbox full`: Temporary soft bounce.
* `554 5.7.1 Relay access denied / SPF fail`: Authentication policy rejection.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.