To get started working with slimta, there are a few terms to know. Someone familiar with SMTP and email servers will recognize many of them.
Mail Transfer Agent. This is a server application used to transfer email messages from a source to a destination along a series of hops.
Mail Submission Agent. This is a form of MTA that specializes in receiving email from a user’s client application, like Mozilla Thunderbird or Apple Mail.
Mail Delivery Agent. This is a form of MTA that specializes in being the final destination of a message: placing it in long-term storage, such as for access/download by IMAP or POP3.
This is a function of the MTA that receives email messages from the outside, generally by listening on a socket and receiving connections.
SMTP RFCs require MTAs to write email messages to persistent storage before acknowledging to the sender that the message has been received. The queue also takes responsibility for requesting delivery retries.
This is a function of the MTA that attempts to transfer the email message either to another MTA or into long-term storage if acting as an MDA.
MX records are special DNS records used by SMTP to figure out where to deliver a message. MX records are prioritized such that lower-numbers are higher priority.
Key-value data providing diagnostic information about an email’s various hops from source to destination, as well as information to help present the email message to the user, such as who it was from and the subject.
Once an email is accepted by the sender’s MSA, the sender’s client has no way of knowing whether the message made it to its destination. If a message fails delivery in some MTA, that MTA will send a new email message back to the sender describing why the message failed.
Encryption between an SMTP client and an SMTP server is done with TLS, a system for encryption and validation of a socket session. TLS usually starts when the client says
STARTTLS, but it is still common for MTAs to have special ports that encrypt the entire session.
To prevent unauthorized message delivery, many MSAs allow (and often require) user clients to present their identity (a username) with a shared secret (a password). The MSA will announce which authentication mechanisms it supports, and plaintext mechanisms may not be allowed unless the socket session is encrypted.
A policy in an MTA is any behavior outside the standard receive, queue, and deliver behaviors. Authentication and encryption are good examples of standardized, universal policies. Examples of more customized policies could be forms of spam filtering, inclusion or filtering of custom headers, or smart forms of routing not based on MX records.