Message lifecycle
Last updated on
Message lifecycle
Section titled “Message lifecycle”The mailing process in STACKIT MailOut is event-driven. Since STACKIT MailOut is designed for speed, scalability, and flexibility, email messages flow through a message pipeline in which each event marks a specific point in the lifecycle of an email message. The logical message flow is illustrated below, broken down into the various phases:
Message injection
Section titled “Message injection”The sending process begins when STACKIT MailOut receives the message:
- Queued: This event is triggered when STACKIT MailOut has successfully accepted a message via SMTP and added it to the queue. This requires checking several criteria, such as
- whether the message is spam or contains malware
- whether the sender domain’s sending quota is sufficient to send the message and
- whether the sender domain’s DNS entries are valid (i.e. the domain has been validated before sending)
If any of these criteria are not met, the message is rejected with a corresponding error code and description.
Message delivery
Section titled “Message delivery”As soon as the message is in the queue, STACKIT MailOut attempts to send it to the destination server.
- Delivered: the “happy path”. Your message was successfully accepted by the destination server (SMTP 250 OK). However, this response does not necessarily mean that the message is visible in the recipient’s inbox. The message may still be rejected at a later stage, for example because the recipient’s inbox is full. The message may also end up in the spam folder.
- Soft Bounce: A temporary problem (e.g. greylisting or the recipient’s mailbox being full, SMTP 4xx). The message remains in the queue and delivery will be attempted again after a defined retry interval (see Queue Management).
- Hard Bounce: A persistent error (e.g. recipient address does not exist, SMTP 5xx). The message is immediately removed from the queue. The recipient of the message is added to the suppression list.
Queue Management
Section titled “Queue Management”Messages that cannot be delivered immediately are subject to internal queue processing.
- Expired: If, despite multiple attempts, a message exceeds the maximum permitted time in the queue, it is removed from the queue and marked as ‘Expired’.
Post-Delivery Phase
Section titled “Post-Delivery Phase”Even after a message has been successfully delivered to the receiving server, the message delivery process is not necessarily complete:
- Hard Bounce (OOB) (Out-of-Band Bounce): The destination server initially accepted the email (250 OK), but subsequently determined during processing that it could not be delivered. In this case, the receiving server sends a Non-Delivery Report (NDR) using the Return-Path. STACKIT MailOut processes these asynchronous bounce notifications and marks the original message as a “Hard Bounce (OOB)”.
Summary of event types
Section titled “Summary of event types”| Event type | Description |
|---|---|
| Queued | The message was accepted and queued by STACKIT MailOut. |
| Delivered | The message was successfully delivered to the receiving server. |
| Soft Bounce | The message could not be delivered due to a temporary error on the recipient’s end. Further attempts will be made to deliver it. |
| Hard Bounce | The message could not be delivered due to a persistent error, and no further delivery attempts will be made. |
| Hard Bounce (OOB) | The message could not be delivered due to a persistent error, and no further delivery attempts will be made. This type of bounce occurs after the message has been previously accepted by the receiving mail server |
| Expired | After several attempts to deliver the message, it could not ultimately be delivered to the recipient (the message will be deleted from the queue). |