3.2.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

The server maintains the following global state:

List of SASL Mechanisms: The list of SASL mechanisms names to be returned in an EHLO response, as specified in [RFC5321].

For each connection from an SMTP client, the server has access to a set of authorized credentials consisting of a username and password. In addition, the server maintains the following state for each connection:

Substate: The state of the authentication, which can be either AuthReceived or UsernameReceived.

Username: The base64-encoded username value provided by the client.