| rfc9422.original.xml | rfc9422.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| <!ENTITY EOverbar "ē">]> <!-- from original, but 275 = x0113 | ]> | |||
| = e-macron, not overbar --> | ||||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
| <!-- JcK: From -04a, converted to RFCXMLv3 and processed manually | ||||
| thereafter --> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <!-- -04a: Converted from Ned's -03 20221103 | ||||
| -04b: Started 20221107: first round of changes, posting version | ||||
| -05a: Started 20221110: IESG change of status, maybe Dave's | ||||
| comments of 2022-11-10 about changes Dave would have | ||||
| approved. | ||||
| Fixed typo per Gene Hightower email 20221202 | ||||
| -05b 2023-06-27 - started updates corresponding to Dave's review | ||||
| and encouraged by Murray | ||||
| -05c 2023-07-27 - more of that set of updates. Posting version | ||||
| -05d 2023-07-28 Fixed typo in Ned's passing date. Real posting version | ||||
| -05e 2023-08-03 Put in fake email address for Ned per email conversation | ||||
| with Murray. Added snark note at the beginning. Post after giving | ||||
| IESG until the end of the day. Posting version. | ||||
| -06a 2023-08-03 Started in response to Murray's AD review (see | ||||
| email). Added the point to the Github bug report about the | ||||
| author email address mess. | ||||
| 06b 2023-09-05. Corrected XML errors in 06a, reworked | ||||
| IANA registration per email with Murray and existence | ||||
| of draft-klensin-iana-consid-hybrid. Posting version. | ||||
| 07a 2023-09-06 Started to correct typos. | ||||
| 07b 2023-10-04 Corrections and changes for Last Call comments, | ||||
| including IANA ones. Posting copy 2023-10-23 per note from | ||||
| Murray dated 2023-10-22 | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft -freed-smtp-limits-07" number="9422" submissionType="IETF" category="std" consen sus="true" obsoletes="" updates="" xml:lang="en" tocInclude="true" sortRefs="tru e" symRefs="true" version="3"> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" | ||||
| docName="draft-freed-smtp-limits-07" | ||||
| category="std" obsoletes="" updates="" submissionType="IETF" | ||||
| xml:lang="en" sortRefs="true" symRefs="true" version="3" | ||||
| consensus="true"> | ||||
| <!-- xml2rfc v2v3 conversion 3.15.2 --> | <!-- xml2rfc v2v3 conversion 3.15.2 --> | |||
| <front> | <front> | |||
| <title abbrev="LIMITS Extension">The LIMITS SMTP Service Extension</title> | <title abbrev="LIMITS Extension">The LIMITS SMTP Service Extension</title> | |||
| <seriesInfo name="Internet-Draft" value="draft-freed-smtp-limits-07"/> | <seriesInfo name="RFC" value="9422"/> | |||
| <author initials="N." surname="Freed" fullname="Ned Freed"> | <author initials="N." surname="Freed" fullname="Ned Freed"> | |||
| <organization> (deceased) </organization> | <organization/> | |||
| <address> | <address/> | |||
| <!-- Bogus email, per rejection of version without it, support | ||||
| ticket [rt5.ietf.org #19962], and discussion with Murray and | ||||
| another few IESG members at, and shortly after IETF 117 --> | ||||
| <email> ned.freed@deceased.alt </email> | ||||
| </address> | ||||
| </author> | </author> | |||
| <author initials="J." surname="Klensin" fullname="John C. Klensin"> | <author initials="J." surname="Klensin" fullname="John C. Klensin"> | |||
| <organization/> | <organization/> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1770 Massachusetts Ave, Suite 322</street> | <street>1770 Massachusetts Ave, Suite 322</street> | |||
| <city>Cambridge</city> | <city>Cambridge</city> | |||
| <region>MA</region> | <region>MA</region> | |||
| <code>02140</code> | <code>02140</code> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>john-ietf@jck.com</email> | <email>john-ietf@jck.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2023" month="October" day="23"/> | <date year="2024" month="February"/> | |||
| <area>ART</area> | <area>ART</area> | |||
| <keyword>Internet-Draft</keyword> | <keyword>SMTP</keyword> | |||
| <keyword>SMTP</keyword> | ||||
| <keyword>LMTP</keyword> | <keyword>LMTP</keyword> | |||
| <keyword>Message Submission</keyword> | <keyword>Message Submission</keyword> | |||
| <keyword>ESMTP</keyword> | <keyword>ESMTP</keyword> | |||
| <keyword>Extension</keyword> | <keyword>Extension</keyword> | |||
| <abstract> | <abstract> | |||
| <t>This document defines a "Limits" extension for the Simple Mail | <t>This document defines a LIMITS extension for the Simple Mail | |||
| Transfer Protocol (SMTP), including submission, as well as the | Transfer Protocol (SMTP), including submission, as well as the | |||
| Local Mail Transfer Protocol (LMTP). It also defines an associate d | Local Mail Transfer Protocol (LMTP). It also defines an associate d | |||
| limit registry. The extension provides the means for an SMTP, sub mission, | limit registry. The extension provides the means for an SMTP, sub mission, | |||
| or LMTP server to inform the client of limits the server intends to apply | or LMTP server to inform the client of limits the server intends to apply | |||
| to the protocol during the current session. The client is then ab le to adapt | to the protocol during the current session. The client is then ab le to adapt | |||
| its behavior in order to conform to those limits.</t> | its behavior in order to conform to those limits.</t> | |||
| </abstract> | </abstract> | |||
| <note> | ||||
| <t> RFC Editor: Please remove this note before publication. | ||||
| Please also remove the problematic email address.</t> | ||||
| <t> This version (-07) of the draft, and the immediately prior | ||||
| ones (-05 and -06) | ||||
| show a deliberately bogus address for the late Ned Freed | ||||
| because, at the time of its posting, the | ||||
| IETF's I-D submission tools and mechanisms, apparently even | ||||
| including tools available to the Secretariat for manual | ||||
| posting, insisted that all authors have email addresses, even | ||||
| authors who had passed away.</t> | ||||
| <t>After a delay of some days after -05 was posted, the issue was | ||||
| formally reported at | ||||
| https://github.com/ietf-tools/datatracker/issues/6114</t></note> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="problems" numbered="true" toc="default"> | <section anchor="problems" numbered="true" toc="default"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>The Simple Mail Transfer Protocol provides the ability to | <t>The Simple Mail Transfer Protocol provides the ability to | |||
| transfer <xref target="SMTP" format="default"/> or submit | transfer <xref target="RFC5321" format="default"/> or submit | |||
| <xref target="SUBMIT" format="default"/> multiple email messages | <xref target="RFC6409" format="default"/> multiple email message | |||
| s | ||||
| from one host to another, each with one or more recipients, | from one host to another, each with one or more recipients, | |||
| using a single or multiple connections.</t> | using a single or multiple connections.</t> | |||
| <t>The Local Mail Transfer Protocol | <t>The Local Mail Transfer Protocol | |||
| <xref target="LMTP" format="default"/> provides the ability | <xref target="RFC2033" format="default"/> provides the ability | |||
| to deliver messages to a system without its own mail queues. Lik e | to deliver messages to a system without its own mail queues. Lik e | |||
| SMTP, it allows multiple messages with multiple recipients.</t> | SMTP, it allows multiple messages with multiple recipients.</t> | |||
| <t>In order to conserve resources as well as protect themselves from | <t>In order to conserve resources as well as protect themselves from | |||
| malicious clients, it is necessary for servers to enforce limits | malicious clients, it is necessary for servers to enforce limits | |||
| on various aspects of the protocol, e.g., a limit on the number | on various aspects of the protocol, e.g., a limit on the number | |||
| of recipients that can be specified in a single transaction.</t> | of recipients that can be specified in a single transaction.</t> | |||
| <t>Additionally, servers may also wish to alter the limits they | <t>Additionally, servers may also wish to alter the limits they | |||
| apply depending on their assessment of the reputation of a particular | apply depending on their assessment of the reputation of a particular | |||
| client.</t> | client.</t> | |||
| <t>The variability of the limits that may be in effect creates a | <t>The variability of the limits that may be in effect creates a | |||
| situation where clients may inadvertently exceed a particular server's | situation where clients may inadvertently exceed a particular server's | |||
| limits, causing servers to respond with temporary (or in some | limits, causing servers to respond with temporary (or in some | |||
| cases, permanent) errors. This in turn can lead to delays or even | cases, permanent) errors. This in turn can lead to delays or even | |||
| failures in message transfer.</t> | failures in message transfer.</t> | |||
| <t>The "Limits" extension provides the means for a server | <t>The LIMITS extension provides the means for a server | |||
| to inform a client about specific limits in effect for | to inform a client about specific limits in effect for | |||
| a particular SMTP or LMTP session in the EHLO or LHLO command response. | a particular SMTP or LMTP session in the EHLO or LHLO command response. | |||
| This information, combined with the | This information, combined with the | |||
| inherent flexibility of these protocols, makes it possible for clients | inherent flexibility of these protocols, makes it possible for clients | |||
| to avoid server errors and the problems they cause.</t> | to avoid server errors and the problems they cause.</t> | |||
| <t>SMTP and LMTP servers have always been able to announce a limit using | <t>SMTP and LMTP servers have always been able to announce a limit using | |||
| distinguished syntax in a reply, but this approach requires that the | distinguished syntax in a reply, but this approach requires that the | |||
| client first needs to issue a command. The mechanism specified here | client first needs to issue a command. The mechanism specified here | |||
| avoids the overhead of that approach by announcing limits prior to any | avoids the overhead of that approach by announcing limits prior to any | |||
| substantive interaction.</t> | substantive interaction.</t> | |||
| <t>Limits are registered with the IANA. Each registration includes | <t>Limits are registered with the IANA. Each registration includes | |||
| the limit name, value syntax, and a description of its semantics.</t> | the limit name, value syntax, and a description of its semantics.</t> | |||
| </section> | </section> | |||
| <section anchor="Terminology" numbered="true" toc="default"> | <section anchor="Terminology" numbered="true" toc="default"> | |||
| <name>Terminology</name> | <name>Terminology</name> | |||
| <!-- Murray complained (email 2023-08-03 14:54 -0700) that text | ||||
| did not exactly match RFC 8174. New version below. ... | <t> | |||
| <t>In this document, the key words "MUST", "MUST NOT", "REQUIRED", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDE | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14> | |||
| D", "MAY", | ", | |||
| and "OPTIONAL" are to be interpreted as described in BCP | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| 14 | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| <xref target="RFC2119" format="default"/> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| <xref target="RFC8174" format="default"/>.</t> --> | be | |||
| <t> The key words "MUST", "MUST NOT", "REQUIRED", | interpreted as described in BCP 14 <xref target="RFC2119"/> <xref | |||
| "SHALL", "SHALL | target="RFC8174"/> when, and only when, they appear in all capitals, as | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOM | shown here. | |||
| MENDED", | </t> | |||
| "MAY", and "OPTIONAL" in this document are to be interp | ||||
| reted as | <t>This specification uses the Augmented Backus-Naur Form | |||
| described in BCP 14 | <xref target="RFC5234" format="default"/> notation and | |||
| <xref target="RFC2119" format="default"/> | its core rules to define the formal syntax of the LIMI | |||
| <xref target="RFC8174" format="default"/> | TS extension.</t> | |||
| when, and only when, they | ||||
| appear in all capitals, as shown here.</t> | ||||
| <t>This specification uses the Augmented Backus-Naur Form | ||||
| <xref target="ABNF" format="default"/> notation and | ||||
| its core rules to define the formal syntax of the "Lim | ||||
| its" extension.</t> | ||||
| <t>This specification makes extensive use of the terminology specified | <t>This specification makes extensive use of the terminology specified | |||
| and used in <xref target="SMTP" format="default"/>.</t> | and used in <xref target="RFC5321" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="Extension" numbered="true" toc="default"> | <section anchor="Extension" numbered="true" toc="default"> | |||
| <name>The "Limits" SMTP Extension</name> | <name>The LIMITS SMTP Extension</name> | |||
| <t>Extensions to SMTP are defined in Section 2.2 of <xref target="SMTP" fo | <t>The extension mechanism for SMTP is defined in Section 2.2 of the curre | |||
| rmat="default"/>. <xref target="LMTP" format="default"/> | nt | |||
| SMTP specification <xref target="RFC5321a"/>. | ||||
| <xref target="RFC2033" format="default">LMTP</xref> | ||||
| inherits SMTP's extension mechanism.</t> | inherits SMTP's extension mechanism.</t> | |||
| <t>The name of the extension is "Limits". Servers implementing this | <t>The name of the extension is LIMITS. Servers implementing this | |||
| extension advertise an additional "LIMITS" EHLO (LHLO in LMTP) keyword. The | extension advertise a LIMITS as a keyword in the response to EHLO | |||
| (LHLO for LMTP). The | ||||
| associated parameter is used by the server to communicate one or | associated parameter is used by the server to communicate one or | |||
| more limits, each with an optional value, to the client. The syntax | more limits, each with an optional value, to the client. The syntax | |||
| of the parameter is:</t> | of the parameter is:</t> | |||
| <artwork type="abnf" name="" align="left" alt=""><![CDATA[ | <sourcecode type="abnf"><![CDATA[ | |||
| limits-param = limit-name-value 0*[SP limit-name-value] | limits-param = limit-name-value 0*[SP limit-name-value] | |||
| limit-name-value = limit-name ["=" limit-value] | limit-name-value = limit-name ["=" limit-value] | |||
| limit-name = 1*(ALPHA / DIGIT / "-" / "_") | limit-name = 1*(ALPHA / DIGIT / "-" / "_") | |||
| limit-value = 1*(%x21-3A / %x3C-7E) ; Any VCHAR except ";" | limit-value = 1*(%x21-3A / %x3C-7E) ; Any VCHAR except ";" | |||
| ]]></sourcecode> | ||||
| ]]></artwork> | <t>This extension introduces no new SMTP commands and does not | |||
| <t>This extension introduces no new SMTP commands, and does not | ||||
| alter any existing command. However, it is possible for a | alter any existing command. However, it is possible for a | |||
| LIMITS parameter to be associated with another SMTP extension | LIMITS parameter to be associated with another SMTP extension | |||
| that does these things.</t> | that does these things.</t> | |||
| <section anchor="limits" numbered="true" toc="default"> | <section anchor="limits" numbered="true" toc="default"> | |||
| <name>Limits</name> | <name>Limits</name> | |||
| <t>In order to achieve consistent behavior, all limits MUST be | <t>In order to achieve consistent behavior, all limits | |||
| <bcp14>MUST</bcp14> be | ||||
| registered with the IANA, as described below.</t> | registered with the IANA, as described below.</t> | |||
| </section> | </section> | |||
| <section anchor="limit-naming-conventions" numbered="true" toc="default"> | <section anchor="limit-naming-conventions" numbered="true" toc="default"> | |||
| <name>Limit Naming Conventions</name> | <name>Limit Naming Conventions</name> | |||
| <t>Limit names MUST be comprehensible, but also should | <t>Limit names <bcp14>MUST</bcp14> be comprehensible, but also should | |||
| be kept as short as possible. The use of commonly understood | be kept as short as possible. The use of commonly understood | |||
| abbreviations, e.g., "MAX" for "maximum", is encouraged.</t> | abbreviations, e.g., "MAX" for "maximum", is encouraged.</t> | |||
| <t>When a limit is associated with a particular command, its name | <t>When a limit is associated with a particular command, its name | |||
| SHOULD begin with the name of that command.</t> | <bcp14>SHOULD</bcp14> begin with the name of that command.</t> | |||
| <t>Limit names SHOULD end with one or more terms that describe | <t>Limit names <bcp14>SHOULD</bcp14> end with one or more terms that des | |||
| cribe | ||||
| the type of limit.</t> | the type of limit.</t> | |||
| </section> | </section> | |||
| <section anchor="interaction-with-pipelining" numbered="true" toc="default "> | <section anchor="interaction-with-pipelining" numbered="true" toc="default "> | |||
| <name>Interaction With Pipelining</name> | <name>Interaction with Pipelining</name> | |||
| <t>The "Pipelining" extension <xref target="PIPELINING" | ||||
| <t>The "Pipelining" extension <xref target="RFC2920" | ||||
| format="default"/> is commonly used | format="default"/> is commonly used | |||
| to improve performance, especially over high latency | to improve performance, especially over high latency | |||
| connections. Pipelining allows entire transaction | connections. Pipelining allows an entire transaction | |||
| to be sent without checking responses and in some cases it may be | to be sent without checking responses, and in some cases it may be | |||
| possible to send multiple transactions.</t> | possible to send multiple transactions.</t> | |||
| <t>The use of pipelining affects limits in an important way: Since | <t>The use of pipelining affects the LIMITS extension in an important wa y: Since | |||
| a pipelining client cannot check intermediate command responses | a pipelining client cannot check intermediate command responses | |||
| without stalling the pipeline, it cannot count the number of | without stalling the pipeline, it cannot count the number of | |||
| successful versus failed responses and adjust its behavior accordingly. | successful versus failed responses and adjust its behavior accordingly. | |||
| Limit designers need to take this into account.</t> | Limit designers need to take this into account.</t> | |||
| <t>For example, it may seem like it would be better to impose a limit | <t>For example, it may seem like it would be better to impose a limit | |||
| on the number of successful RCPT TO commands as opposed to the | on the number of successful RCPT TO commands as opposed to the | |||
| way the RCPTMAX limit is specified in <xref target="RCPTMAX" format="default"/> below. But | way the RCPTMAX limit is specified in <xref target="RCPTMAX" format="default"/> below. But | |||
| counting the total number of RCPT TOs is simple, whereas | counting the total number of RCPT TOs is simple, whereas | |||
| counting the number of successful RCPT TO stalls the pipeline.</t> | counting the number of successful RCPT TO stalls the pipeline.</t> | |||
| </section> | </section> | |||
| <section anchor="varying-limits" numbered="true" toc="default"> | <section anchor="varying-limits" numbered="true" toc="default"> | |||
| <name>Varying Limits</name> | <name>Varying Limits</name> | |||
| <t>This extension provides an announcement as part of the reply to | <t>This extension provides an announcement as part of the reply to | |||
| an EHLO command.</t> | an EHLO command.</t> | |||
| <t>Some servers vary their limits, as a session | <t>Some servers vary their limits, as a session | |||
| progresses, based on their obtaining more information. | progresses, based on their obtaining more information. | |||
| This extension does not attempt to handle in-session limit changes.</t> | This extension does not attempt to handle in-session limit changes.</t> | |||
| </section> | </section> | |||
| <section anchor="interaction-with-smtp-minimums" numbered="true" toc="defa ult"> | <section anchor="interaction-with-smtp-minimums" numbered="true" toc="defa ult"> | |||
| <name>Interaction With SMTP Minimums</name> | <name>Interaction with SMTP Minimums</name> | |||
| <t>Section 4.5.3.1 of <xref target="SMTP" format="default"/> | <t>SMTP specifies minimum values for | |||
| specifies minimum values for | various server sizes, limits, and timeouts | |||
| various server sizes, limits, and timeouts, e.g., servers | <xref format="default" target="RFC5321b"/>, e.g., servers must | |||
| must | accept a minimum of 100 RCPT TO commands | |||
| accept a minimum of 100 RCPT TO commands (section 4.5.3.1 | <xref target="RFC5321c"/>). | |||
| .8). | Unfortunately, the reality is that servers routinely impo | |||
| Unfortunately, the reality is that servers routinely imp | se smaller | |||
| ose smaller | ||||
| limits than what SMTP requires, and when this is done it is especially | limits than what SMTP requires, and when this is done it is especially | |||
| important for clients to be aware that this is happening. </t> | important for clients to be aware that this is happening. </t> | |||
| <t>For this reason there is no requirement that the limits | <t>For this reason there is no requirement that the limits | |||
| advertised by this extension comply with the minimums imposed | advertised by this extension comply with the minimums imposed | |||
| by SMTP.</t> | by SMTP.</t> | |||
| </section> | </section> | |||
| <section anchor="multiple-ehlo-commands" numbered="true" toc="default"> | <section anchor="multiple-ehlo-commands" numbered="true" toc="default"> | |||
| <name>Multiple EHLO Commands</name> | <name>Multiple EHLO Commands</name> | |||
| <t>These protocols require that the EHLO command (LHLO in LMTP) be | <t>These protocols require that the EHLO command (LHLO in LMTP) be | |||
| reissued under certain circumstances, e.g., after succe ssful | reissued under certain circumstances, e.g., after succe ssful | |||
| authentication <xref target="AUTH" format="default"/> or negotiation of a securi | authentication <xref target="RFC4954" format="default"/> or negotiation of a sec | |||
| ty layer <xref target="STARTTLS" format="default"/>.</t> | urity layer <xref target="RFC3207" format="default"/>.</t> | |||
| <t>Servers MAY return updated limits any time the protocol requires | <t>Servers <bcp14>MAY</bcp14> return updated limits any time the protoco | |||
| l requires | ||||
| clients to reissue the EHLO command.</t> | clients to reissue the EHLO command.</t> | |||
| <t>Clients MUST discard any | <t>Clients <bcp14>MUST</bcp14> discard any | |||
| previous limits in favor of those provided by the most recent | previous limits in favor of those provided by the most recent | |||
| EHLO. This includes the case where the original EHLO provided | EHLO. This includes the case where the original EHLO provided | |||
| a set of limits but the subsequent EHLO did not; in this | a set of limits but the subsequent EHLO did not; in this | |||
| case the client MUST act as if no limits were communicated.</t> | case, the client <bcp14>MUST</bcp14> act as if no limits were communicated.</t> | |||
| </section> | </section> | |||
| <section anchor="syntax-errors-in-the-limits-parameter-value" numbered="tr ue" toc="default"> | <section anchor="syntax-errors-in-the-limits-parameter-value" numbered="tr ue" toc="default"> | |||
| <name>Syntax Errors in the LIMITS Parameter Value</name> | <name>Syntax Errors in the LIMITS Parameter Value</name> | |||
| <t>Syntax errors in the basic parameter syntax are best handled by | <t>Syntax errors in the basic parameter syntax are best handled by | |||
| ignoring the value in its entirety; in this case clients SHOULD | ignoring the value in its entirety; in this case, clients <bcp14>SHOULD</bcp14> | |||
| proceed as if the LIMITS extension had not been used.</t> | proceed as if the LIMITS extension had not been used.</t> | |||
| <t>Syntax or other errors in the value syntax of a specific | <t>Syntax or other errors in the value syntax of a specific | |||
| limit, including unrecognized value keywords, are | limit, including unrecognized value keywords, are | |||
| best handled by ignoring that limit; in this case the cli | best handled by ignoring that limit; in this case, the cl | |||
| ent | ient | |||
| MUST <!-- changed from SHOULD per Dave Crocker note | <bcp14>MUST</bcp14> | |||
| 2022-11-10 --> | ||||
| proceed as if that limit had not been specified.</t> | proceed as if that limit had not been specified.</t> | |||
| <t>It is possible that future specification may create | <t>It is possible that a future specification may create | |||
| multiple limits that are interrelated in some way; in thi | multiple limits that are interrelated in some way; in thi | |||
| s case | s case, | |||
| that specification MUST specify how an error in the value | that specification <bcp14>MUST</bcp14> specify how an err | |||
| syntax of | or in the value syntax of | |||
| one limit affects the other limits.</t> | one limit affects the other limits.</t> | |||
| </section> | </section> | |||
| <section anchor="caching-of-limit-settings-between-sessions" numbered="tru e" toc="default"> | <section anchor="caching-of-limit-settings-between-sessions" numbered="tru e" toc="default"> | |||
| <name>Caching of Limit Settings Between Sessions Involving the | <name>Caching of Limit Settings between Sessions Involving the | |||
| Same Client and Server SMTP</name> | Same Client and Server SMTP</name> | |||
| <t>Clients MAY cache limits determined during one session | <t>Clients <bcp14>MAY</bcp14> cache limits determined during one session | |||
| and use them to optimize their behavior for subsequent | and use them to optimize their behavior for subsequent | |||
| sessions. However, since servers are free to adjust their | sessions. However, since servers are free to adjust their | |||
| limits at any time, clients MUST be able to accommodate | limits at any time, clients <bcp14>MUST</bcp14> be able to accommodate | |||
| any limit changes that occur between sessions.</t> | any limit changes that occur between sessions.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="initial-limits" numbered="true" toc="default"> | <section anchor="initial-limits" numbered="true" toc="default"> | |||
| <name>Initial Limits</name> | <name>Initial Limits</name> | |||
| <t>An initial set of limits is specified in the following sections.</t> | <t>An initial set of limits is specified in the following sections.</t> | |||
| <section anchor="mailmax-limit" numbered="true" toc="default"> | <section anchor="mailmax-limit" numbered="true" toc="default"> | |||
| <name>MAILMAX Limit</name> | <name>MAILMAX Limit</name> | |||
| <t>Name: MAILMAX</t> | <dl> | |||
| <t>Value syntax: %x31-39 0*5DIGIT ; 0 not allowed, 6 digit maximum</t> | <dt>Name:</dt><dd>MAILMAX</dd> | |||
| <t>Description: MAILMAX specifies the maximum number of transactions | <dt>Value syntax:</dt><dd>%x31-39 0*5DIGIT ; "0" not allowed, six-digit | |||
| maximum</dd> | ||||
| <dt>Description:</dt><dd>MAILMAX specifies the maximum number of transac | ||||
| tions | ||||
| (MAIL FROM commands) the server will accept in a single session. The | (MAIL FROM commands) the server will accept in a single session. The | |||
| count includes all MAIL FROM commands, regardless of whether they | count includes all MAIL FROM commands, regardless of whether they | |||
| succeed or fail.</t> | succeed or fail.</dd> | |||
| <t>Restrictions: None.</t> | <dt>Restrictions:</dt><dd> None.</dd> | |||
| <t>Security Considerations: See <xref target="Seccons" format="default"/ | <dt>Security Considerations:</dt><dd> See <xref target="Seccons" format= | |||
| ></t> | "default"/></dd> | |||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="RCPTMAX" numbered="true" toc="default"> | <section anchor="RCPTMAX" numbered="true" toc="default"> | |||
| <name>RCPTMAX Limit</name> | <name>RCPTMAX Limit</name> | |||
| <t>Name: RCPTMAX</t> | <dl> | |||
| <t>Value syntax: %x31-39 0*5DIGIT ; 0 not allowed, 6 digit maximum</t> | <dt>Name:</dt> <dd>RCPTMAX</dd> | |||
| <t>Description: RCPTMAX specifies the maximum number of RCPT TO commands | <dt>Value syntax:</dt><dd> %x31-39 0*5DIGIT ; "0" not allowed, six-digit | |||
| maximum</dd> | ||||
| <dt>Description:</dt> <dd>RCPTMAX specifies the maximum number of RCPT T | ||||
| O commands | ||||
| the server will accept in a single transaction. It is not a limit | the server will accept in a single transaction. It is not a limit | |||
| on the actual number of recipients the message ends up being sent to; | on the actual number of recipients the message ends up being sent to; | |||
| a single RCPT TO command may produce multiple recipients or, in the | a single RCPT TO command may produce multiple recipients or, in the | |||
| event of an error, none.</t> | event of an error, none.</dd> | |||
| <t>Restrictions: None.</t> | <dt>Restrictions:</dt> <dd>None.</dd> | |||
| <t>Security Considerations: See <xref target="Seccons" format="default"/ | <dt>Security Considerations:</dt> <dd>See <xref target="Seccons" format= | |||
| ></t> | "default"/></dd> | |||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="rcptdomainmax-limit" numbered="true" toc="default"> | <section anchor="rcptdomainmax-limit" numbered="true" toc="default"> | |||
| <name>RCPTDOMAINMAX Limit</name> | <name>RCPTDOMAINMAX Limit</name> | |||
| <t>Name: RCPTDOMAINMAX</t> | <dl> | |||
| <t>Value syntax: %x31-39 0*5DIGIT ; 0 not allowed, 6 digit maximum</t> | <dt>Name:</dt> <dd>RCPTDOMAINMAX</dd> | |||
| <t>Description: RCPTDOMAINMAX specifies the maximum number of different | <dt>Value syntax:</dt> <dd> %x31-39 0*5DIGIT ; "0" not allowed, six-digi | |||
| domains | t maximum</dd> | |||
| <dt>Description:</dt> <dd>RCPTDOMAINMAX specifies the maximum number of | ||||
| different domains | ||||
| that can appear in a recipient (RCPT TO) address within a single | that can appear in a recipient (RCPT TO) address within a single | |||
| session. This limit is imposed by some servers that bind to | session. This limit is imposed by some servers that bind to | |||
| a specific internal delivery mechanism on receipt of the first | a specific internal delivery mechanism on receipt of the first | |||
| RCPT TO command.</t> | RCPT TO command.</dd> | |||
| <t>Restrictions: None.</t> | <dt>Restrictions:</dt> <dd>None.</dd> | |||
| <t>Security Considerations: See <xref target="Seccons" format="default"/ | <dt>Security Considerations:</dt> <dd>See <xref target="Seccons" format= | |||
| ></t> | "default"/></dd> | |||
| </dl> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="example" numbered="true" toc="default"> | <section anchor="example" numbered="true" toc="default"> | |||
| <name>Example</name> | <name>Example</name> | |||
| <t>A server announces two limits it implements to the client, along | <t>A server announces two limits it implements to the client, along | |||
| with various other supported extensions, as follows:</t> | with various other supported extensions, as follows:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| S: [wait for open connection] | S: [wait for open connection] | |||
| C: [open connection to server] | C: [open connection to server] | |||
| skipping to change at line 346 ¶ | skipping to change at line 297 ¶ | |||
| C: EHLO example.org | C: EHLO example.org | |||
| S: 250-mail.example.com | S: 250-mail.example.com | |||
| S: 250-SMTPUTF8 | S: 250-SMTPUTF8 | |||
| S: 250-LIMITS RCPTMAX=20 MAILMAX=5 | S: 250-LIMITS RCPTMAX=20 MAILMAX=5 | |||
| S: 250-SIZE 100000000 | S: 250-SIZE 100000000 | |||
| S: 250-8BITMIME | S: 250-8BITMIME | |||
| S: 250-ENHANCEDSTATUSCODES | S: 250-ENHANCEDSTATUSCODES | |||
| S: 250-PIPELINING | S: 250-PIPELINING | |||
| S: 250-CHUNKING | S: 250-CHUNKING | |||
| S: 250 STARTTLS | S: 250 STARTTLS | |||
| ]]></artwork> | ]]></artwork> | |||
| <t>The client now knows to limit the number of recipients in a transaction | <t>The client now knows to limit the number of recipients in a transaction | |||
| to twenty and the number of transactions in a session to five.</t> | to twenty and the number of transactions in a session to five.</t> | |||
| </section> | </section> | |||
| <section anchor="Seccons" numbered="true" toc="default"> | <section anchor="Seccons" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>A malicious server can use limits to overly constrain client behavior, | <t>A malicious server can use limits to overly constrain client behavior, | |||
| causing excessive use of client resources.</t> | causing excessive use of client resources.</t> | |||
| <t>A malicious client may use the limits a server advertises to optimize | <t>A malicious client may use the limits a server advertises to optimize | |||
| the delivery of unwanted messages.</t> | the delivery of unwanted messages.</t> | |||
| <t>A man-in-the-middle attack on unprotected SMTP connections can | <t>A man-in-the-middle attack on unprotected SMTP connections can | |||
| be used to cause clients to misbehave, which in turn could result | be used to cause clients to misbehave, which in turn could result | |||
| in delivery delays or failures. Loss of reputation for the client | in delivery delays or failures. Loss of reputation for the client | |||
| could also occur.</t> | could also occur.</t> | |||
| <t>All that said, decades of operational experience with the | <t>All that said, decades of operational experience with the | |||
| SMTP "SIZE" extension <xref target="SIZE" format="default"/>, | SMTP "SIZE" extension <xref target="RFC1870" format="default"/>, | |||
| which provides servers with the | which provides servers with the | |||
| ability to indicate message size, indicates that such abuse is | ability to indicate message size, indicates that such abuse is | |||
| rare and unlikely to be a significant problem.</t> | rare and unlikely to be a significant problem.</t> | |||
| <t>Use of the Limits extension to provide client-specific information - as | <t>Use of the LIMITS extension to provide client-specific information - as | |||
| opposed to general server limits - unavoidably provides senders w ith | opposed to general server limits - unavoidably provides senders w ith | |||
| feedback about their reputation. Malicious senders can exploit th is | feedback about their reputation. Malicious senders can exploit th is | |||
| in various ways, e.g., start by sending good email and then, once their | in various ways, e.g., start by sending good email and then, once their | |||
| reputation is established, sending bad email.</t> | reputation is established, sending bad email.</t> | |||
| </section> | </section> | |||
| <section anchor="iana-considerations" numbered="true" toc="default"> | <section anchor="iana-considerations" numbered="true" toc="default"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <section anchor="smtp-service-extension-registry" numbered="true" toc="def ault"> | <section anchor="smtp-service-extension-registry" numbered="true" toc="def ault"> | |||
| <name>SMTP Service Extension Registry</name> | <name>SMTP Service Extension Registry</name> | |||
| <t>The IANA is requested to add "LIMITS" to the SMTP Service | <t>The IANA has added "LIMITS" to the "SMTP Service | |||
| Extension Registry:</t> | Extensions" registry:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <dl> | |||
| Keywords: LIMITS | <dt>EHLO Keyword:</dt><dd>LIMITS</dd> | |||
| Description: Server limits | ||||
| Reference: [RFCxxxx] | ||||
| Note: See "SMTP Server Limits Regisry" below. | ||||
| ]]></artwork> | <dt>Description:</dt><dd>Server limits</dd> | |||
| <dt>Reference:</dt><dd>RFC 9422</dd> | ||||
| <dt>Note:</dt><dd>See "SMTP Server Limits" registry.</dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="smtp-server-limits-registry" numbered="true" toc="defa ult"> | <section anchor="smtp-server-limits-registry" numbered="true" toc="defa ult"> | |||
| <name>SMTP Server Limits Registry</name> | <name>SMTP Server Limits Registry</name> | |||
| <!-- following removed in -07, per message from Murray 2023-10-2 | <t>The IANA has created a new registry in the "MAIL | |||
| 2 | Parameters" group for SMTP server limits. The policy for | |||
| <t> | ||||
| <cref>Discussion is underway about incorporating a | ||||
| variation on the "two options" or "hybrid" registration | ||||
| model described in Section 8.1.1 of | ||||
| draft-ietf-emailcore-rfc5321bis into a | ||||
| revision of RFC 8126 or updating that RFC as described i | ||||
| n | ||||
| draft-klensin-iana-consid-hybrid. If that option become | ||||
| s | ||||
| available and generally accepted before work on this | ||||
| specification is complete, this subsection should | ||||
| probably be modified to use it, rather than having those | ||||
| registrations depend on "Specification Required". The | ||||
| latter, as defined in RFC 8126, satisfies neither those | ||||
| who prefer a barrier-free registration system nor those | ||||
| who prefer significant community review and input.</cref | ||||
| > | ||||
| </t> --> | ||||
| <t>The IANA is requested to create a new registry in the Mail | ||||
| Parameters group for SMTP server limits. The policy for | ||||
| this registry is "Specification Required". | this registry is "Specification Required". | |||
| Registry entries consist of these required values:</t> | Registry entries consist of these required values:</t> | |||
| <ol spacing="normal" type="1"> | <ol spacing="normal" type="1"> | |||
| <li>The name of the limit.</li> | <li>The name of the limit.</li> | |||
| <li>The syntax of the limit value, if the limit has one. | <li>The syntax of the limit value, if the limit has one. | |||
| This syntax MUST conform to the provisions of | This syntax <bcp14>MUST</bcp14> conform to the provisi ons of | |||
| <xref target="Extension"/> above. | <xref target="Extension"/> above. | |||
| In most cases, the syntax will consist of a keyword | In most cases, the syntax will consist of a keyword | |||
| designating the limit type followed by a limit value, | designating the limit type followed by a limit value, | |||
| using a "name=value" form as illustrated by the | using a "name=value" form as illustrated by the | |||
| registrations created by this specification in | registrations created by this specification in | |||
| <xref target="initial-limits"/> above. | <xref target="initial-limits"/> above. | |||
| Use of <xref target="ABNF" format="default"/> | Use of ABNF <xref target="RFC5234" format="default"/> | |||
| is preferred but not required. If there is no limit | is preferred but not required. If there is no limit | |||
| value, that should be explicit in the registration | value, that should be explicit in the registration | |||
| request and the registry.</li> | request and the registry.</li> | |||
| <li>A description of the limit's semantics.</li> | <li>A description of the limit's semantics.</li> | |||
| <li>Restrictions, if any, on the use of the limit. If the limit is spe cific | <li>Restrictions, if any, on the use of the limit. If the limit is spe cific | |||
| to any of SMTP, message submission, or LMTP, it should be documented | to any of SMTP, message submission, or LMTP, it should be documented | |||
| here.</li> | here.</li> | |||
| <li>Security considerations for the limit</li> | <li>Security considerations for the limit.</li> | |||
| </ol> | </ol> | |||
| <t> The Designated Expert(s) appointed under the | <t> The Designated Expert(s) appointed under the | |||
| "Specification Required" procedure should check that | "Specification Required" procedure should check that | |||
| registration requests are consistent with the requirements | registration requests are consistent with the requirements | |||
| and intent of the extension mechanisms associated with | and intent of the extension mechanisms associated with | |||
| SMTP <xref target="SMTP"/>, | SMTP <xref target="RFC5321"/>, | |||
| <xref target="Extension"/> above, and the provision of this | <xref target="Extension"/> above, and the provision of this | |||
| specification more generally and offer advice | specification more generally and offer advice | |||
| accordingly.</t> | accordingly.</t> | |||
| <t>The IANA is also requested to register the limits | <t>The IANA has registered the limits | |||
| specified in <xref target="initial-limits"/> of this | specified in <xref target="initial-limits"/> of this | |||
| document.</t> | document.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <displayreference target="RFC2920" to="PIPELINING"/> | ||||
| <displayreference target="RFC5234" to="ABNF"/> | ||||
| <displayreference target="RFC5321" to="SMTP"/> | ||||
| <displayreference target="RFC1870" to="SIZE"/> | ||||
| <displayreference target="RFC2033" to="LMTP"/> | ||||
| <displayreference target="RFC3207" to="STARTTLS"/> | ||||
| <displayreference target="RFC4954" to="AUTH"/> | ||||
| <displayreference target="RFC6409" to="SUBMIT"/> | ||||
| <references> | <references> | |||
| <name>References</name> | <name>References</name> | |||
| <references> | <references> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| FC.2119.xml"/> | 119.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| FC.8174.xml"/> | 174.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
| 920.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
| 234.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/referenc | ||||
| e.RFC.5321.xml"/> | ||||
| <reference anchor="RFC5321a"> | ||||
| <front> | ||||
| <title> Simple Mail Transfer Protocol</title> | ||||
| <author initials="J." surname="Klensin" | ||||
| fullname="John C. Klensin"/> | ||||
| <date year="2008" month="October"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5321"/> | ||||
| <refcontent>Section 2.2</refcontent> | ||||
| </reference> | ||||
| <reference anchor="PIPELINING" target="https://www.rfc-editor.org/info/r | ||||
| fc2920"> | ||||
| <front> | ||||
| <title>SMTP Service Extension for Command Pipelining</title> | ||||
| <author fullname="N. Freed" initials="N." surname="Freed"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="September" year="2000"/> | ||||
| <abstract> | ||||
| <t>This memo defines an extension to the Simple Mail Transfer Prot | ||||
| ocol (SMTP) service whereby a server can indicate the extent of its ability to a | ||||
| ccept multiple commands in a single Transmission Control Protocol (TCP) send ope | ||||
| ration. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="60"/> | ||||
| <seriesInfo name="RFC" value="2920"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2920"/> | ||||
| </reference> | ||||
| <reference anchor="ABNF" target="https://www.rfc-editor.org/info/rfc5234 | ||||
| "> | ||||
| <front> | ||||
| <title>Augmented BNF for Syntax Specifications: ABNF</title> | ||||
| <author fullname="D. Crocker" initials="D." role="editor" surname="C | ||||
| rocker"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="P. Overell" initials="P." surname="Overell"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" year="2008"/> | ||||
| <abstract> | ||||
| <t>Internet technical specifications often need to define a formal | ||||
| syntax. Over the years, a modified version of Backus-Naur Form (BNF), called A | ||||
| ugmented BNF (ABNF), has been popular among many Internet specifications. The c | ||||
| urrent specification documents ABNF. It balances compactness and simplicity with | ||||
| reasonable representational power. The differences between standard BNF and AB | ||||
| NF involve naming rules, repetition, alternatives, order-independence, and value | ||||
| ranges. This specification also supplies additional rule definitions and encod | ||||
| ing for a core lexical analyzer of the type common to several Internet specifica | ||||
| tions. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="68"/> | ||||
| <seriesInfo name="RFC" value="5234"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5234"/> | ||||
| </reference> | ||||
| <reference anchor="SMTP" target="https://www.rfc-editor.org/info/rfc5321 | ||||
| "> | ||||
| <front> | ||||
| <title>Simple Mail Transfer Protocol</title> | ||||
| <author fullname="J. Klensin" initials="J." surname="Klensin"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="2008"/> | ||||
| <abstract> | ||||
| <t>This document is a specification of the basic protocol for Inte | ||||
| rnet electronic mail transport. It consolidates, updates, and clarifies several | ||||
| previous documents, making all or parts of most of them obsolete. It covers th | ||||
| e SMTP extension mechanisms and best practices for the contemporary Internet, bu | ||||
| t does not provide details about particular extensions. Although SMTP was desig | ||||
| ned as a mail transport and delivery protocol, this specification also contains | ||||
| information that is important to its use as a "mail submission" protocol for "sp | ||||
| lit-UA" (User Agent) mail reading systems and mobile environments. [STANDARDS-T | ||||
| RACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5321"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5321"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| <references> | <references> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <reference anchor="SIZE" target="https://www.rfc-editor.org/info/rfc1870 | ||||
| "> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1 | |||
| <front> | 870.xml"/> | |||
| <title>SMTP Service Extension for Message Size Declaration</title> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| <author fullname="J. Klensin" initials="J." surname="Klensin"> | 033.xml"/> | |||
| <organization/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
| </author> | 207.xml"/> | |||
| <author fullname="N. Freed" initials="N." surname="Freed"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
| <organization/> | 954.xml"/> | |||
| </author> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| <author fullname="K. Moore" initials="K." surname="Moore"> | 409.xml"/> | |||
| <organization/> | ||||
| </author> | <reference anchor="RFC5321b"> | |||
| <date month="November" year="1995"/> | <front> | |||
| <abstract> | <title> Simple Mail Transfer Protocol</title> | |||
| <t>This memo defines an extension to the SMTP service whereby an S | <author initials="J." surname="Klensin" | |||
| MTP client and server may interact to give the server an opportunity to decline | fullname="John C. Klensin"/> | |||
| to accept a message (perhaps temporarily) based on the client's estimate of the | <date year="2008" month="October"/> | |||
| message size. [STANDARDS-TRACK]</t> | </front> | |||
| </abstract> | <seriesInfo name="RFC" value="5321"/> | |||
| </front> | <refcontent>Section 4.5.3.1</refcontent> | |||
| <seriesInfo name="STD" value="10"/> | </reference> | |||
| <seriesInfo name="RFC" value="1870"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC1870"/> | <reference anchor="RFC5321c"> | |||
| </reference> | <front> | |||
| <reference anchor="LMTP" target="https://www.rfc-editor.org/info/rfc2033 | <title> Simple Mail Transfer Protocol</title> | |||
| "> | <author initials="J." surname="Klensin" | |||
| <front> | fullname="John C. Klensin"/> | |||
| <title>Local Mail Transfer Protocol</title> | <date year="2008" month="October"/> | |||
| <author fullname="J. Myers" initials="J." surname="Myers"> | </front> | |||
| <organization/> | <seriesInfo name="RFC" value="5321"/> | |||
| </author> | <refcontent>Section 4.5.3.1.8 </refcontent> | |||
| <date month="October" year="1996"/> | </reference> | |||
| <abstract> | ||||
| <t>SMTP [SMTP] [HOST-REQ] and its service extensions [ESMTP] provi | ||||
| de a mechanism for transferring mail reliably and efficiently. The design of th | ||||
| e SMTP protocol effectively requires the server to manage a mail delivery queue. | ||||
| This memo provides information for the Internet community. This memo does not | ||||
| specify an Internet standard of any kind.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="2033"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2033"/> | ||||
| </reference> | ||||
| <reference anchor="STARTTLS" target="https://www.rfc-editor.org/info/rfc | ||||
| 3207"> | ||||
| <front> | ||||
| <title>SMTP Service Extension for Secure SMTP over Transport Layer S | ||||
| ecurity</title> | ||||
| <author fullname="P. Hoffman" initials="P." surname="Hoffman"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="February" year="2002"/> | ||||
| <abstract> | ||||
| <t>This document describes an extension to the SMTP (Simple Mail T | ||||
| ransfer Protocol) service that allows an SMTP server and client to use TLS (Tran | ||||
| sport Layer Security) to provide private, authenticated communication over the I | ||||
| nternet. This gives SMTP agents the ability to protect some or all of their com | ||||
| munications from eavesdroppers and attackers. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3207"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3207"/> | ||||
| </reference> | ||||
| <reference anchor="AUTH" target="https://www.rfc-editor.org/info/rfc4954 | ||||
| "> | ||||
| <front> | ||||
| <title>SMTP Service Extension for Authentication</title> | ||||
| <author fullname="R. Siemborski" initials="R." role="editor" surname | ||||
| ="Siemborski"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="A. Melnikov" initials="A." role="editor" surname=" | ||||
| Melnikov"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="July" year="2007"/> | ||||
| <abstract> | ||||
| <t>This document defines a Simple Mail Transport Protocol (SMTP) e | ||||
| xtension whereby an SMTP client may indicate an authentication mechanism to the | ||||
| server, perform an authentication protocol exchange, and optionally negotiate a | ||||
| security layer for subsequent protocol interactions during this session. This e | ||||
| xtension includes a profile of the Simple Authentication and Security Layer (SAS | ||||
| L) for SMTP.</t> | ||||
| <t>This document obsoletes RFC 2554. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4954"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4954"/> | ||||
| </reference> | ||||
| <reference anchor="SUBMIT" target="https://www.rfc-editor.org/info/rfc64 | ||||
| 09"> | ||||
| <front> | ||||
| <title>Message Submission for Mail</title> | ||||
| <author fullname="R. Gellens" initials="R." surname="Gellens"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="J. Klensin" initials="J." surname="Klensin"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="November" year="2011"/> | ||||
| <abstract> | ||||
| <t>This memo splits message submission from message relay, allowin | ||||
| g each service to operate according to its own rules (for security, policy, etc. | ||||
| ), and specifies what actions are to be taken by a submission server.</t> | ||||
| <t>Message relay is unaffected, and continues to use SMTP over por | ||||
| t 25.</t> | ||||
| <t>When conforming to this document, message submission uses the p | ||||
| rotocol specified here, normally over port 587.</t> | ||||
| <t>This separation of function offers a number of benefits, includ | ||||
| ing the ability to apply specific security or policy requirements. [STANDARDS- | ||||
| TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="72"/> | ||||
| <seriesInfo name="RFC" value="6409"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6409"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| </references> | </references> | |||
| <section anchor="acknowledgements" numbered="true" toc="default"> | <section anchor="acknowledgments" numbered="false" toc="default"> | |||
| <name>Acknowledgments</name> | <name>Acknowledgments</name> | |||
| <t> The concept for this extension came from, and was developed | <t> The concept for this extension came from, and was developed | |||
| by, Ned Freed and most of this specification, including | by, Ned Freed and most of this specification, including | |||
| substantially of the technical details, was written by him. | substantially all of the technical details, was written by him. | |||
| Unfortunately, he became ill and eventually passed away in | Unfortunately, he became ill and eventually passed away in | |||
| May 2022 without being able to complete the document and | May 2022 without being able to complete the document and | |||
| manage it through IETF Last Call. His contributions to the | manage it through IETF Last Call. His contributions to the | |||
| Internet, work in the IETF, and the personal style that | Internet, work in the IETF, and the personal style that | |||
| made both possible are irreplaceable and greatly missed. | made both possible are irreplaceable and greatly missed. | |||
| With the support of the | With the support of the | |||
| community, John Klensin picked the document up, responded to | community, John Klensin picked the document up, responded to | |||
| some additional feedback, and got the document into what is | some additional feedback, and got the document into what is | |||
| believed to be a finished state. In the interest of | believed to be a finished state. In the interest of | |||
| preserving this as Ned's document, a few comments that | preserving this as Ned's document, a few comments that | |||
| proposed additional features and options were set aside for | proposed additional features and options were set aside for | |||
| future work rather than our having to guess at whether Ned | future work rather than our having to guess at whether Ned | |||
| would have approved of them.</t> | would have approved of them.</t> | |||
| <t> The acknowledgments below are divided into two parts, those | <t> The acknowledgments below are divided into two parts, those | |||
| written by Ned and those associated with input to the | written by Ned and those associated with input to the | |||
| document after his passing.</t> | document after his passing.</t> | |||
| <section anchor="acknow-ned" numbered="true" | ||||
| toc="default"> | <ul><li><t>Acknowledgments from the Last Version Prepared by | |||
| <name>Acknowledgments from the Last Version Prepared by | Ned Freed</t> | |||
| Ned Freed</name> | ||||
| <t>A lot of people have helped make this specification | <t>A lot of people have helped make this specification | |||
| possible. The author wishes | possible. The author wishes to thank <contact | |||
| to thank Claus Assmann, Laura Atkins, Alex Brotman, Richa | fullname="Claus Assmann"/>, <contact fullname="Laura Atkins"/>, | |||
| rd Clayton, | <contact fullname="Alex Brotman"/>, <contact fullname="Richard | |||
| Dave Crocker, Viktor Dukhovni, Arnt Gulbrandsen, Jeremy | Clayton"/>, | |||
| Harris, Todd Herr, | <contact fullname="Dave Crocker"/>, <contact fullname="Viktor D | |||
| Mike Hillyer, Matthias Leisi, John Klensin, | ukhovni"/>, | |||
| Valdis Kl&EOverbar;tnieks, <!-- Klētnieks --> | <contact fullname=" Arnt Gulbrandsen"/>, <contact fullname="Jer | |||
| John Levine, Alexey Melnikov, Keith Moore, Michael Peddem | emy Harris"/>, | |||
| ors, Hector Santos, | <contact fullname="Todd Herr"/>, <contact fullname="Mike Hillye | |||
| George Schlossnagle, Rolf E. Sonneveld, and Alessandro Ve | r"/>, | |||
| sely for their | <contact fullname="Matthias Leisi"/>, <contact fullname="John K | |||
| contributions and reviews.</t> | lensin"/>, | |||
| </section> | <contact fullname="Valdis Klētnieks"/>, <contact fullname="John | |||
| <section anchor="acknow-jck" numbered="true" | Levine"/>, | |||
| toc="default"> | <contact fullname="Alexey Melnikov"/>, <contact fullname="Keith | |||
| <name>Acknowledgments from Versions Subsequent to Ned | Moore"/>, | |||
| Freed's Passing</name> | <contact fullname="Michael Peddemors"/>, <contact fullname="Hec | |||
| tor Santos"/>, | ||||
| <contact fullname="George Schlossnagle"/>, <contact fullname="R | ||||
| olf E. Sonneveld"/>, | ||||
| and <contact fullname="Alessandro Vesely"/> for their contribut | ||||
| ions and reviews.</t> | ||||
| </li> | ||||
| <li><t>Acknowledgments from Versions Subsequent to Ned | ||||
| Freed's Passing</t> | ||||
| <t> Additional helpful suggestions were received when the draft | <t> Additional helpful suggestions were received when the draft | |||
| was requeued in the last part of 2022 and thereafter. Re views and | was requeued in the last part of 2022 and thereafter. Re views and | |||
| suggestions from Alex Brotman, Dave Crocker, Gene Hightow | suggestions from <contact fullname="Alex Brotman"/>, <con | |||
| er, | tact fullname="Dave Crocker"/>, | |||
| Murray S. Kucherawy, Barry Leiba, John Levine, and | <contact fullname="Gene Hightower"/>, <contact fullname=" | |||
| Phil Pennock were | Murray S. Kucherawy"/>, | |||
| <contact fullname="Barry Leiba"/>, <contact fullname="Joh | ||||
| n Levine"/>, and | ||||
| <contact fullname="Phil Pennock"/> were | ||||
| especially helpful in identifying errors and suggesting | especially helpful in identifying errors and suggesting | |||
| clarifying some issues with the document without changing | clarifying some issues with the document without changing | |||
| Ned's fundamental issues or very much of his text.</t> | Ned's fundamental issues or very much of his text.</t> | |||
| <t> IETF Last Call comments (and comments immediately before | <t> IETF Last Call comments (and comments immediately before | |||
| it started) from people not listed above that resulted in | it started) from people not listed above that resulted in | |||
| document changes were received from | document changes were received from | |||
| Amanda Baber (for IANA), Linda Dunbar, Paul Kyzivat, | <contact fullname="Amanda Baber"/> (for IANA), <contact f | |||
| and Phil Pennock.</t> | ullname="Linda Dunbar"/>, and | |||
| </section> | <contact fullname="Paul Kyzivat"/>.</t> | |||
| </section> | </li> | |||
| </ul> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Change Log After Version -03 (the last version prepared | ||||
| entirely by Ned Freed)</name> | ||||
| <t>RFC Editor: Please remove this section before | ||||
| publication</t> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Changes between draft-freed-smtp-limits-03 (2021-07-12) | ||||
| and -04</name> | ||||
| <t>Version 03 of this draft was posted by Ned Freed on | ||||
| 2021-07-12 and appeared to be | ||||
| nearly ready for IETF Last Call at that point. Unfortunately, | ||||
| with | ||||
| Ned Freed's illness and untimely passing in May 2022, the draf | ||||
| t was | ||||
| allowed to expire and drop off the radar. This appendix | ||||
| documents changes starting with draft-freed-smtp-limits-04, i. | ||||
| e., | ||||
| after the last draft Ned Freed personally edited.</t> | ||||
| <ul> | ||||
| <li> UPgraded from RFCXMLv2 to v3 and added the initial | ||||
| note below the abstract and this (redundant) Appendix. | ||||
| no other intentional changes other than....</li> | ||||
| <li> Adjusted | ||||
| <xref target="syntax-errors-in-the-limits-parameter-val | ||||
| ue"/> | ||||
| to slightly clarify the intent in the second case.</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Changes between draft-freed-smtp-limits-04 (2022-11-08) | ||||
| and -05</name> | ||||
| <ul> | ||||
| <li> Corrected a few typographical and minor grammatical and | ||||
| stylistic issues. </li> | ||||
| <li> Made multiple small changes and corrections reflecting | ||||
| comments from the mailing list.</li> | ||||
| <li> In the hope that this version will soon be ready for IETF | ||||
| last call, removed the introductory note and restructure | ||||
| d | ||||
| and rewrote the acknowledgments, moving much of that | ||||
| introductory material there as well as acknowledging | ||||
| input and other comments since work on the document was | ||||
| restarted somewhat over a year ago.</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Changes between draft-freed-smtp-limits-05 (2023-08-03) | ||||
| and -06</name> | ||||
| <ul> | ||||
| <li>Added some words about Designated Experts and a comment | ||||
| about hybrid to | ||||
| <xref target="smtp-server-limits-registry"/>.</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Changes between draft-freed-smtp-limits-06 (2023-09-05) | ||||
| and -07</name> | ||||
| <ul> | ||||
| <li> Revised IANA Considerations | ||||
| (<xref target="iana-considerations"/>) to reflect | ||||
| comments in IANA review dated 2023-10-02.</li> | ||||
| <li>Corrected several typographical errors and small | ||||
| editorial issues.</li> | ||||
| <li> Updated Acknowledgments.</li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| </section> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 66 change blocks. | ||||
| 496 lines changed or deleted | 248 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||