Skip to content

Message lifecycle

Last updated on

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:

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.

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.

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’.

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)”.