List-Id: A Structured Field and Namespace for the Identification of Mailing Lists
Extracted elements (21)
It is suggested, but not required, that list identifiers be created under a 'list-id' subdomain within a given domain (e.g., 'list-id.within.com') to reduce internal conflicts between subdomain administrators of large organizations.
The domain name system is used as the basis for the list identifier namespace to leverage existing authority structures: domain name ownership inherently defines who has the right to create identifiers in a namespace, and separates the list identifier from any particular delivery host or mechanism.
The List-Id header is preferred over the list submission address as a stable identifier because the submission address can change when the list server host, processing software, or submission policy changes, causing difficulty for automated processing and filtering.
Client applications should treat any whitespace inside the angle brackets that might be inserted by poorly behaved MTAs as characters to ignore, even though MTAs MUST NOT insert such whitespace.
For many MUAs, parsing the List-Id header will simply consist of extracting the list identifier from between the delimiting angle brackets. MUAs that use the optional description phrase must be prepared to properly parse and decode encoded strings or other legal phrase components.
The List-Id header does not allow free insertion of whitespace and comments around tokens, unlike most headers in RFC 822. Any descriptive text must appear in the optional phrase component.
A list identifier MUST NOT be longer than 255 octets in length, for future compatibility.
A MUA SHOULD treat a different list identifier as a different list, so list administrators SHOULD avoid changing the list identifier even when the hosting server changes.
A nested sublist MUST NOT modify the List-Id header field. If a mailing list processor encounters a List-Id header field from any unexpected source it SHOULD NOT pass it through to the list.
List-IDs not ending with '.localhost' MUST be globally unique in reference to all other mailing lists.
List owners using the 'localhost' namespace SHOULD use the month and year (MMYYYY) of creation as a subdomain, and some portion of the identifier MUST be a randomly generated string. Identifiers with a random component SHOULD contain a hex encoding of 128 bits of randomness (32 hex characters).
MTAs MUST NOT insert whitespace within the angle brackets of the List-Id header value.
The comparison operation for list identifiers MUST ignore any part of the List-Id header outside of the angle brackets; only case-insensitive equality of the bracketed identifier is defined.
The List-Id field MUST only be generated by mailing list software, not end users.
The List-Id header SHOULD be included on all messages distributed by the list, including command responses to individual users, and on other messages where the message clearly applies to that distinct list.
The owner of a mailing list MUST NOT generate list identifiers in any domain namespace for which they do not have authority.
There MUST be no more than one List-Id field present in any given message.
The List-Id header field provides a unique identifier for an email distribution list. It consists of an optional descriptive phrase followed by an angle-bracket-enclosed list identifier, formatted as: 'List-ID:' [phrase] '<' list-id '>' CRLF.
The unmanaged list identifier namespace uses the reserved domain 'localhost' (per RFC 2606) and is intended for personal users or those without domain name authority. Identifiers ending in '.localhost' are not guaranteed to be globally unique.
Mail list processors SHOULD NOT allow any user-originated List-Id fields to pass through to their lists, as forged headers could confuse users and create security problems. On the client side, a forged list identifier SHOULD NOT be used as an indication of message authenticity.
The list identifier syntax is defined as: list-id = list-label '.' list-id-namespace, where list-label is a dot-atom-text and list-id-namespace is either a domain-name or the reserved string 'localhost'. A list-id MUST NOT exceed 255 octets.