Warning, /pim/trojita/docs/proposed-extensions/draft-kundrat-imap-submit.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="US-ASCII"?> 0002 <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ 0003 0004 <!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"> 0005 <!ENTITY RFC3461 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3461.xml"> 0006 <!ENTITY RFC3501 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3501.xml"> 0007 <!ENTITY RFC4409 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4409.xml"> 0008 <!ENTITY RFC4467 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4467.xml"> 0009 <!ENTITY RFC4468 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4468.xml"> 0010 <!ENTITY RFC4469 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4469.xml"> 0011 <!ENTITY RFC4551 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4551.xml"> 0012 <!ENTITY RFC5172 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5172.xml"> 0013 <!ENTITY RFC5228 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5228.xml"> 0014 <!ENTITY RFC5234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml"> 0015 <!ENTITY RFC5321 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5321.xml"> 0016 <!ENTITY RFC5322 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5322.xml"> 0017 <!ENTITY RFC5550 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5550.xml"> 0018 ]> 0019 <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> 0020 <?rfc strict="yes" ?> 0021 <?rfc toc="yes"?> 0022 <?rfc tocdepth="4"?> 0023 <?rfc symrefs="yes"?> 0024 <?rfc sortrefs="yes" ?> 0025 <?rfc compact="yes" ?> 0026 <?rfc subcompact="no" ?> 0027 <rfc category="std" docName="draft-kundrat-imap-submit-02" ipr="trust200902"> 0028 0029 <front> 0030 <title>IMAP SUBMIT Extension</title> 0031 0032 <author fullname="Jan Kundrat" initials="J." surname="Kundrat"> 0033 <address> 0034 <postal> 0035 <street>Eledrova 558</street> 0036 <city>Prague</city> 0037 <code>181 00</code> 0038 <country>CZ</country> 0039 </postal> 0040 <email>jkt@flaska.net</email> 0041 </address> 0042 </author> 0043 0044 <date year="2013" month="August" day="27"/> 0045 0046 <area>General</area> 0047 <workgroup>Internet Engineering Task Force</workgroup> 0048 0049 <keyword>IMAP</keyword> 0050 <keyword>SMTP</keyword> 0051 <keyword>ESMTP</keyword> 0052 <keyword>submission</keyword> 0053 <keyword>submit</keyword> 0054 <keyword>sendmail</keyword> 0055 0056 <abstract> 0057 <t>This document extends the IMAP protocol with a feature to submit e-mail messages for delivery. It is 0058 intended to serve as a better alternative to the URLAUTH/BURL approach.</t> 0059 </abstract> 0060 </front> 0061 0062 <middle> 0063 <section title="Introduction"> 0064 <t>In the traditional IMAP/ESMTP service model, a MUA transfers each outgoing message twice -- once for storing 0065 it in the user's "sent mail" folder, and the second time for actual message submission over (E)SMTP. Under 0066 certain circumstances, such as when the message contains data which are already available in another message 0067 stored on the same IMAP server (such as when forwarding an unread attachment to another recipient), the MUA 0068 has to download the data before the message can be composed, resulting in transmitting the data three times 0069 in total.</t> 0070 0071 <t>Many proposals exist which aim to reduce this high number of transfers to the lowest possible number. The 0072 CATENATE extension <xref target="RFC4469"/> enables IMAP clients to have the IMAP servers compose messages 0073 on their behalf, optionally using data already available on the IMAP server. Using CATENATE, MUAs do not 0074 have to download individual message parts before including them to the newly created message.</t> 0075 0076 <t>The LEMONADE extension family <xref target="RFC5550"/> mandates full support for BURL <xref 0077 target="RFC4468"/> and URLAUTH <xref target="RFC4467"/> extensions. When coupled with a properly 0078 configured pair of ESMTP and IMAP servers, these two extensions allow MUAs to have the submission server 0079 obtain the message payload from the IMAP server. This approach completely eliminates the need to upload the 0080 message data to the ESMTP server, achieving the "forward-without-download" goal.</t> 0081 0082 <t>The BURL/URLAUTH extensions, however, put a significant burden on the server operators who suddenly have to 0083 establish an explicit trust relation between their submission and IMAP servers, and make this trust path 0084 visible to the users' MUAs. No MUA-visible means of discovering this trust relation are defined. 0085 Furthermore, the whole scheme still requires the MUAs to maintain two distinct connections speaking 0086 different protocols. Users are prompted for two sets of credentials to authenticate to each of these two 0087 services. Real-world support issues were reported where users are able to access their IMAP service while 0088 access to the submission service is blocked by a mis-configured firewall.</t> 0089 0090 <t>The SUBMIT extension of the IMAP protocol effectively moves the message submission process to be initiated by 0091 a user's request to their IMAP server. When deployed, this scenario provides a perfect discoverability to 0092 the users' MUAs, saves the overhead of establishing and securing a separate TCP connection against the 0093 submission server, reduces the amount of the configuration data the users are required to provide, and 0094 simplifies the trust paths which are required to exist between the submission and the IMAP servers. When 0095 combined with the existing CATENATE extension <xref target="RFC4469"/>, the SUBMIT command works at least as 0096 effectively as the Lemonade trio of CATENATE/BURL/URLAUTH.</t> 0097 0098 <section title="Requirements Language"> 0099 <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 0100 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 0101 document are to be interpreted as described in <xref 0102 target="RFC2119">RFC 2119</xref>.</t> 0103 </section> 0104 </section> 0105 0106 <section title="Mode of Operation"> 0107 <t>The SUBMIT extension adds the UID SUBMIT IMAP command which instructs the IMAP server to arrange for 0108 delivery of an already existing IMAP message. How this message is composed is outside of scope of this 0109 extension, but it is assumed that clients will often use the APPEND or APPEND ... CATENATE commands.</t> 0110 0111 <t>Upon receiving the SUBMIT command, the IMAP server is asked for arranging the initial message submission. 0112 Clients MAY pass additional data in form of various options of the SUBMIT command (the delivery options). 0113 The server checks the passed data and delivery options, optionally performs sanity checks on the message 0114 contents, verifies against a local policy whether the user is authorized for message submission, and if none 0115 of these checks fail, the server passes the message for subsequent delivery. The delivery method is outside 0116 of scope of this document, but typical methods would be invoking a `sendmail`-compatible binary or passing 0117 the message to an ESMTP gateway.</t> 0118 </section> 0119 0120 <section title="IMAP Protocol Changes"> 0121 <t>This extension introduces one new IMAP command, a few related response codes and a new family of the IMAP 0122 capabilities.</t> 0123 0124 <section title="New IMAP Capabilities"> 0125 <section title="The SUBMIT Capability"> 0126 <t>Servers implementing this extension announce its presence through the SUBMIT capability. If the 0127 server supports this extension but message submission is unconditionally disabled by a security 0128 policy or service configuration, this capability MUST NOT be announced.</t> 0129 <t>When this capability is present, clients may assume that chances are high that submitting messages 0130 over IMAP will work.</t> 0131 </section> 0132 0133 <section title="The SUBMIT= Capabilities Family"> 0134 <t>The SUBMIT commands issued by the IMAP clients MAY contain delivery options, and these options might 0135 contain other fine grained options. Servers supporting voluntary features MUST indicate so by 0136 including the appropriate strings in the CAPABILITY responses. All capabilities used for these 0137 purposes begin with the SUBMIT= prefix.</t> 0138 0139 <section title="SUBMIT=DSN"> 0140 <t>If the server supports user control of generating the Delivery Status Notifications (DSN), it 0141 MUST announce the SUBMIT=DSN capability. Clients MUST NOT attempt to control DSN options 0142 through the DSN submission option unless the server announces the SUBMIT=DSN capability.</t> 0143 </section> 0144 </section> 0145 </section> 0146 0147 <section title="Additional Response Codes"> 0148 <t>The following response codes are defined for communicating the reason why submission failed in a 0149 machine-readable way.</t> 0150 0151 <section title="The POLICYDENIED Response Code"> 0152 <t>The POLICYDENIED response code SHOULD be used if the server rejects message submission as a result of 0153 a policy based decision which MAY take the message content, submission options, user's behavior and 0154 transaction history into account.</t> 0155 <t>Upon seeing the POLICYDENIED response code, the client MUST inform the user that message submission 0156 failed, and include the text of the response in the error message. Clients MUST NOT attempt to 0157 automatically re-queue this message for sending over IMAP. The clients MAY, however, choose to 0158 continue the message submission by another channel, perhaps over an ESMTP service.</t> 0159 </section> 0160 0161 <section title="The SUBMISSIONRACE Response Code"> 0162 <t>The SUBMISSIONRACE response code MUST be sent in the tagged response if the client asks for 0163 submission of a message that is either not marked with the $SubmitPending keyword or marked with the 0164 $Submitted keyword.</t> 0165 <t>The SUBMISSIONRACE response code could SHOULD have a preference over the POLICYDENIED response code.</t> 0166 </section> 0167 </section> 0168 0169 <section title="UID SUBMIT command"> 0170 <t>The UID SUBMIT command submits a message for delivery.</t> 0171 0172 <t>Arguments: <list style="symbols"> 0173 <t>UID of message to be sent</t> 0174 <t>optional list of delivery options</t> 0175 </list></t> 0176 0177 <t>Responses: FETCH response with updated message flags</t> 0178 0179 <t>Result: <list style="hanging"> 0180 <t hangText="OK">Message submitted for delivery</t> 0181 <t hangText="NO">Submission failed</t> 0182 <t hangText="BAD">Invalid commands or options</t> 0183 </list></t> 0184 0185 <t>This command is only valid in the selected state.</t> 0186 0187 <t>The server MUST check its local policy configuration and verify that the authenticated user is allowed to 0188 submit messages. The decision MAY be based on the user's credentials, the message contents, past 0189 history of the user, or any other criteria the server deems relevant. The server SHOULD take into 0190 account any other local policies before it proceeds with further submission.</t> 0191 0192 <t>Clients MUST NOT submit a message which is either not marked with the $SubmitPending keyword from <xref 0193 target="RFC5550"/>, or which is marked with the $Submitted keyword. Servers MUST reject such a 0194 command with a tagged NO bearing the SUBMISSIONRACE response code.</t> 0195 0196 <t>In the course of submission, servers MUST atomically add the $Submitted flag to the message, as 0197 described in LEMONADE <xref target="RFC5550"/>. A transient state where the message is temporarily 0198 marked with both $Submitted and $SubmitPending flags MAY be hidden from any IMAP session or it MAY be 0199 visible in some or all of them.</t> 0200 0201 <t>If the command succeeded, the message MUST be marked with the $Submitted keyword, the $SubmitPending 0202 keyword MUST be cleared and a FETCH response containing the message UID and its new flags MUST be 0203 sent.</t> 0204 0205 <t>If the command fails, the server MUST clear both the $Submitted or $SubmitPending keywords.</t> 0206 0207 <t>If the server supports CONDSTORE <xref target="RFC4551"/> or QRESYNC <xref target="RFC5172"/> extensions, 0208 any flag changes MUST obey the usual MODSEQ invariants. Any changes in the MODSEQ values MUST be 0209 communicated to the clients, as mandated by the relevant extensions.</t> 0210 0211 <t>Clients MUST be prepared to handle failing submission at any time. Servers MAY reject message submission 0212 for any reason.</t> 0213 0214 <t>The server MUST process all specified delivery options and their detailed options. The server MUST 0215 respond with a tagged BAD if the client used unrecognized or unannounced option, or if a recognized 0216 option is used in an invalid way. If the server cannot honor a recognized and announced option, it MUST 0217 respond with a tagged NO with the POLICYDENIED response code and the message MUST NOT be submitted, nor 0218 its flags changed.</t> 0219 0220 <t>Servers MAY alter the message payload of the outgoing message in conformance with best current practice 0221 about Internet mail. Individual recipients MAY receive different versions of the message. In 0222 particular, servers MUST change message headers so that the identity of addresses present in the Bcc 0223 headers is not revealed to other recipients. This mode of operation is described in <xref 0224 target="RFC5321"/> and <xref target="RFC5322"/>. The copy stored on the IMAP server MUST NOT be 0225 altered by these modifications.</t> 0226 0227 <section title="Delivery options"> 0228 <t>The following two delivery options are defined by this extension. These options apply to the message 0229 as a whole:</t> 0230 0231 <section title="FROM Delivery Option"> 0232 <t>Syntax: one e-mail address with optional further data</t> 0233 0234 <t>The FROM delivery option corresponds to the FROM field of the SMTP envelope. If not present, its 0235 value MUST be inferred from the message payload.</t> 0236 0237 <t>It is an error if the FROM delivery option is present more than once. Servers MUST reject such 0238 commands using the BAD tagged response and the message MUST NOT be submitted. Message flags of 0239 the source message MUST NOT be modified.</t> 0240 0241 <t>The following per-message submission option is defined by this extensions:</t> 0242 0243 <section title="DSN-ENVID Submission Option"> 0244 <t>Syntax: specification of ESMTP Envelope ID</t> 0245 <t>This per-message submission option corresponds to the ENVID=... parameter from <xref 0246 target="RFC3461"/>. It allows senders to attach a machine-readable ID to be received in the 0247 delivery status reports concerning this message.</t> 0248 <t>Clients MUST NOT use the DSN-ENVID return option unless the server announces the SUBMIT=DSN 0249 capability or a SUBMIT=... capability defined by future extensions which make use of the ENVID 0250 ESMTP parameter.</t> 0251 </section> 0252 0253 </section> 0254 0255 <section title="RECIPIENT Delivery Option"> 0256 <t>Syntax: one e-mail address followed by optional further data</t> 0257 0258 <t>The RECIPIENT delivery option corresponds to the RCPT TO field of the SMTP envelope.</t> 0259 0260 <t>The RECIPIENT delivery option MAY be present more than once. Servers MAY impose a limit on the 0261 number of recipients of a single message.</t> 0262 0263 <t>If the RECIPIENT delivery option is present, servers MUST ignore any To, Cc and Bcc headers in 0264 the message payload when determining the list of recipients of this message. That is, the final 0265 list of recipients of the message MUST consist exactly of those recipients specified in the 0266 RECIPIENT delivery options. The server MUST still sanitize the headers of the submitted 0267 message to guarantee the privacy of the recipients listed in the Bcc message header.</t> 0268 0269 <t>If the RECIPIENT delivery option is missing, servers MUST infer its value from the message 0270 payload. For example, each address present in any of To, Cc and Bcc message headers MUST be 0271 present in the recipient list.</t> 0272 0273 <t>Servers MAY impose a local policy decision about always sending a copy of message to a certain 0274 address. This operation MUST NOT remove any addresses from the list of recipients, as obtained 0275 either from the user-specified list of recipients passed through the RECIPIENTS delivery 0276 options, or inferred from the mail headers.</t> 0277 0278 <t>Message submission MUST be atomic -- message is either submitted for delivery to all recipients, 0279 or it MUST NOT be submitted for delivery to anyone. Actual delivery MAY still fail for certain 0280 recipients, as per usual ESMTP semantics.</t> 0281 0282 <t>The following submission options are defined for the RECIPIENT delivery option:</t> 0283 0284 <section title="DSN Submission Option"> 0285 <t>Syntax: delivery status notice specification</t> 0286 <t>The DSN submission option controls generating of delivery status notifications related to the 0287 currently submitted message. When not given, an implementation-defined default value MUST be 0288 used. The default value MUST be either (FAILURE) or (DELAY, FAILURE), as mandated by <xref 0289 target="RFC3461"/>.</t> 0290 <t>It is an error if the DSN submission option is present multiple times for one recipient.</t> 0291 <t>Clients MUST NOT specify the DSN submission option unless the server announces the SUBMIT=DSN 0292 capability. Support for the SUBMIT=DSN submission option is OPTIONAL.</t> 0293 <t>The DSN specification is either "NONE" to deactivate DSNs altogether, or a parenthesized list of any 0294 of the following DSN options:</t> 0295 <t><list style="hanging"> 0296 <t hangText="SUCCESS"> requests generating DSNs upon successful delivery of a message</t> 0297 <t hangText="DELAY"> activates generating DSNs when delivery is delayed</t> 0298 <t hangText="FAILURE"> requests generating DSNs when the delivery fails</t> 0299 </list></t> 0300 <t>The order of DSN requests is not significant. A single DSN option item MUST NOT be repeated 0301 in the DSN specification for one recipient.</t> 0302 </section> 0303 0304 <section title="DSN-RET Submission Option"> 0305 <t>Syntax: DSN return option specification</t> 0306 <t>This per-recipient submission option corresponds to the RET=... parameter from <xref 0307 target="RFC3461"/>. Two values are defined, "HDRS" and "FULL", meaning to include only the 0308 headers or the full message, respectively, in the generated delivery status reports.</t> 0309 <t>Clients MUST NOT use the DSN-RET return option unless the server announces the SUBMIT=DSN 0310 capability.</t> 0311 </section> 0312 0313 </section> 0314 </section> 0315 </section> 0316 </section> 0317 0318 <section title="Example"> 0319 <t>This section contains an example of how message submission over IMAP works.</t> 0320 0321 <t>The following example shows how client should submit a message with UID 123 in the current mailbox for 0322 delivery. If the message is passed through SMTP, its From address in the SMTP envelope MUST be set to 0323 foo@example.org and it MUST be submitted for delivery to two recipients, the a@example.org and 0324 b@example.org. The DSN options are set to report about excess delays and failures in message delivery for 0325 the first recipient. System's default policy of DSN production is retained for the second recipient.</t> 0326 0327 <figure align="center"> 0328 <artwork align="left"><![CDATA[ 0329 C: x UID SUBMIT 123 (FROM "foo@example.org" 0330 RECIPIENT "a@example.org" DSN (delay failure) 0331 RECIPIENT "b@example.org" 0332 ) 0333 S: * 10 FETCH (UID 123 FLAGS ($Submitted)) 0334 S: x OK Message passed to the sendmail binary]]></artwork> 0335 </figure> 0336 0337 <t>In the following example, a message is delivered to addresses specified in the message payload. No 0338 delivery options are given, and therefore the From and To envelope items are inferred from the actual 0339 payload. The DSN options, if supported, are set to an implementation-defined default value.</t> 0340 0341 <figure align="center"> 0342 <artwork align="left"><![CDATA[ 0343 C: x UID SUBMIT 123 0344 S: * 10 FETCH (UID 123 FLAGS ($Submitted)) 0345 S: x OK Message passed to the sendmail binary]]></artwork> 0346 </figure> 0347 0348 </section> 0349 0350 <section anchor="Acknowledgements" title="Acknowledgements"> 0351 <t>FIXME</t> 0352 </section> 0353 0354 <section anchor="IANA" title="IANA Considerations"> 0355 <t>IMAP4 capabilities are registered by publishing a standards track or IESG approved experimental RFC. The 0356 registry is currently located at:</t> 0357 <t>http://www.iana.org/assignments/imap4-capabilities</t> 0358 <t>This document defines the following list of IMAP capabilities. IANA will be asked to add them to the 0359 registry:</t> 0360 <t><list style="symbols"> 0361 <t>SUBMIT</t> 0362 <t>SUBMIT=DSN</t> 0363 </list></t> 0364 <t>FIXME: response codes</t> 0365 </section> 0366 0367 <section anchor="ABNF" title="Formal Syntax"> 0368 <t>The following syntax specification uses the Augmented Backus-Naur 0369 Form (ABNF) notation as specified in <xref target="RFC5234"/>.</t> 0370 0371 <t>Non-terminals referenced but not defined below are as defined by 0372 <xref target="RFC3501"/>, or <xref target="RFC5234"/>.</t> 0373 0374 <figure align="center"> 0375 <artwork align="left" type="abnf"><![CDATA[ 0376 capability =/ "SUBMIT" / "SUBMIT=DSN" 0377 ;; This extension also reserves all further 0378 ;; capabilities starting with the "SUBMIT=" 0379 ;; prefix for future extensions related to the 0380 ;; message submission over IMAP 0381 0382 uid =/ "UID" SP sendmail 0383 0384 sendmail = "SUBMIT" SP uniqueid [SP delivery-options] 0385 0386 delivery-options = "(" delivery-option *( SP delivery-option ) ")" 0387 0388 delivery-option = submission-from / submission-recipient 0389 0390 submission-from = "FROM" SP one-email-addr [SP mail-from-params] 0391 ;; MUST NOT be present more than once 0392 ;; in the delivery-options block 0393 0394 submission-recipient= "RECIPIENT" SP one-email-addr [SP mail-rcpt-params] 0395 ;; MAY be present more than once 0396 0397 mail-from-params = "(" mail-from-param *( SP mail-from-param ) ")" 0398 0399 mail-from-param = sub-option-dsn-envid / sub-generic-option 0400 0401 mail-rcpt-params = "(" mail-rcpt-param *( SP mail-rcpt-param ) ")" 0402 0403 mail-rcpt-param = sub-option-rcpt-dsn / sub-option-dsn-ret 0404 / sub-generic-option 0405 0406 sub-generic-option = string SP string 0407 ;; FIXME: do we want to retain this in without any semantics? 0408 0409 sub-option-rcpt-dsn = "DSN" SP ( "NONE" / dsn-spec ) 0410 ;; MUST NOT be present more than once for each recipient 0411 0412 dsn-spec = "(" dsn-spec-item *( SP dsn-spec-item ) ")" 0413 ;; an individual dsn-spec-item MUST NOT 0414 ;; be present more than once in this list 0415 0416 dsn-spec-item = "DELAY" / "FAILURE" / "SUCCESS" 0417 0418 sub-option-dsn-ret = "DSN-RET" SP ( "FULL" / "HDRS" ) 0419 ;; MUST NOT be present more than once for each recipient 0420 0421 sub-option-dsn-envid= "DSN-ENVID" SP xtext 0422 ;; MUST NOT be present more than once 0423 ;; <xtext> is defined in [RFC3461], section 4. 0424 ;; The allowed syntax is further limited by 0425 ;; its section 4.4. 0426 0427 one-email-addr = string 0428 ;; valid e-mail address as per [RFC5321] 0429 ]]></artwork> 0430 </figure> 0431 </section> 0432 0433 <section anchor="Security" title="Security Considerations"> 0434 <t>This extension introduces a new way of allowing authenticated users to submit Internet mail. Servers 0435 supporting this extension SHOULD implement the same security measures as other SUBMISSION <xref 0436 target="RFC4409"/> servers open to users.</t> 0437 0438 <t>The redirect command from SIEVE <xref target="RFC5228"/> already requires some types of IMAP message stores 0439 to be able to generate outgoing mail. Security considerations for this extension are similar.</t> 0440 0441 <t>For the IMAP-based submission to work, the server operators MUST configure their MTA systems to accept 0442 submission requests from their IMAP servers. This change MAY have security implications, even though 0443 services supporting the SIEVE filtering are already configured to accept e-mails for submission.</t> 0444 0445 <t>The new trust path MAY replace the trust path required for the BURL/URLAUTH operation required by the 0446 LEMONADE extension family.</t> 0447 </section> 0448 </middle> 0449 0450 <back> 0451 <references title="Normative References"> 0452 &RFC2119; 0453 0454 &RFC5234; 0455 0456 &RFC3501; 0457 0458 &RFC3461; 0459 0460 &RFC4409; 0461 0462 &RFC4467; 0463 0464 &RFC4468; 0465 0466 &RFC4469; 0467 0468 &RFC4551; 0469 0470 &RFC5172; 0471 0472 &RFC5228; 0473 0474 &RFC5321; 0475 0476 &RFC5322; 0477 0478 &RFC5550; 0479 </references> 0480 0481 <section anchor="FIXME" title="FIXME Items"> 0482 <t>IANA and the response codes</t> 0483 <t>"if the command fails, server MUST clear both $SubmitPending and $Submitted" -- what to do when there's 0484 something like a disk error?</t> 0485 </section> 0486 0487 <section anchor="changelog" title="Changelog"> 0488 <section title="Changes in -02 since -01"> 0489 <t><list style="symbols"> 0490 <t>Clarified priorities of SUBMISSIONRACE and POLICYDENIED</t> 0491 <t>Clarify failover procedure upon seeing a POLICYDENIED</t> 0492 <t>Clarified message flag manipulation</t> 0493 <t>Clarified recipient list mangling</t> 0494 <t>More editorial work</t> 0495 </list></t> 0496 </section> 0497 <section title="Changes in -01 since -00"> 0498 <t><list style="symbols"> 0499 <t>"Delivery options" is the new name for former "submission options"; changed the existing DSN options 0500 family to use this new syntax (thanks to Arnt for this suggestion)</t> 0501 <t>Clarified the visibility of the transitional state with both $Submitted and $SubmitPending</t> 0502 <t>Some editorial work</t> 0503 <t>Fixed an error in the example (multiple FROM addresses...)</t> 0504 </list></t> 0505 </section> 0506 <section title="Changes in -00 since private-01"> 0507 <t><list style="symbols"> 0508 <t>Renamed to SUBMIT</t> 0509 <t>DSNs are per-recipient, not per-message</t> 0510 <t>The introduction was rewritten</t> 0511 <t>Miscellaneous clarifications</t> 0512 <t>Changed DSN NIL to DSN NONE</t> 0513 <t>Clarified the semantics of the RECIPIENT submission option to guarantee Bcc privacy</t> 0514 <t>Editorial tweaks, including changes to the required SHOULD/MUST/...</t> 0515 <t>DSN's ENVID and RET</t> 0516 </list></t> 0517 </section> 0518 0519 <section title="Changes in private-01 since private-00"> 0520 <t><list style="symbols"> 0521 <t>Removed the superfluous SENDER submission option</t> 0522 <t>Mandating Bcc removal in conformance with RFC 5321 / RFC 5322</t> 0523 </list></t> 0524 </section> 0525 </section> 0526 </back> 0527 </rfc>