## MailFront

## SMTP Front Ends

# Message Submission Agent

## Summary

An MSA (message submission agent) is a mail component specifically designed to accept mail submitted by an MUA (message user agent, or mail client) for further delivery or relaying. This is in contrast to a MTA (message transfer agent) which is designed to accept mail from other MTAs primarily for local delivery. The most important standard governing the behavior of an MSA is RFC 2476. All modules described as being "MSA compliant" can fill the role described by the standard.

## RFC 2476 Details

Section | Description | Status
--- | --- | ---
Requirements
3.2 | A null return path, that is, MAIL FROM:<>, is permitted and MUST be accepted. (MUAs need to generate null return-path messages for a variety of reasons, including disposition notifications.) | Yes
4.1 | Unless covered by a more precise response code, response code 554 is to be used to reject a MAIL FROM, RCPT TO, or DATA command that contains something improper. Enhanced status code 5.6.0 is to be used if no other code is more specific. | Yes
4.2 | The MSA MUST ensure that all domains in the envelope are fully-qualified. | Yes
4.2 | If the MSA examines or alters the message text in way, except to add trace header fields [RFC 821 / RFC 2821], it MUST ensure that all domains in address header fields are fully-qualified. | N/A
4.2 | Reply code 554 is to be used to reject a MAIL FROM, RCPT TO, or DATA command which contains improper domain references. | Yes
5.1 | Reply code 501 is to be used to reject a MAIL FROM or RCPT TO command that contains a detectably improper address. | N/A
5.1 | When addresses are resolved after submission of the message body, reply code 554 with enhanced status code 5.6.2 is to be used after end-of-data, if the message contains invalid addresses in the header. | N/A
6.4 | Reply code 554 is used for syntactic problems in the data. Reply code 501 is used if the command itself is not syntactically valid. Reply code 550 with enhanced status code 5.7.1 is used to reject based on the submitting user. Reply code 550 with enhanced status code 5.7.0 is used if the message violates site policy. | N/A
7 | The MSA MUST NOT accept ETRN. [RFC 1985] | Yes
7 | The MSA MUST NOT send the SMTP 521 Reply Code [RFC 1845] | Yes
8.1 | The MSA MUST ensure that any address it places in a 'Sender' field is in fact a valid mail address. | N/A
Recommendations
3.2 | If an MSA is not able to determine a return path to the submitting user, from a valid MAIL FROM, a valid source IP address, or based on authenticated identity, then the MSA SHOULD immediately reject the message. A message can be immediately rejected by returning a 550 code to the MAIL FROM command. | N/A
4.2 | Local conventions that permit single-level domains SHOULD reject, rather than expand, incomplete multi-level domains. | N/A
5.1 | An MSA SHOULD reject messages with illegal syntax in a sender or recipient envelope address. | N/A
5.1 | If the MSA examines or alters the message text in way, except to add trace header fields, it SHOULD reject messages with illegal address syntax in address header fields. | N/A
5.2 | The MSA SHOULD log message errors, especially apparent misconfigurations of client software. | No
7 | The MSA SHOULD accept pipelining. [RFC 2197] | Yes
7 | The MSA SHOULD send error codes. [RFC 2034] | Yes
7 | The MSA SHOULD send extended response codes. [RFC 1893] | Yes
7 | The MSA SHOULD support DSN. [RFC 1891] | No
7 | The MSA SHOULD accept 8-bit MIME data. [RFC 1652] | Yes?