idnits 2.17.1 draft-moonesamy-rfc2369bis-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document obsoletes RFC2369, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (December 11, 2011) is 4513 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Individual Submission S. Moonesamy, Ed. 3 Internet-Draft December 11, 2011 4 Obsoletes: 2369 (if approved) 5 Intended status: Standards Track 6 Expires: June 13, 2012 8 The Use of URIs as Meta-Syntax for Core Mail List Commands and their 9 Transport through Message Header Fields 10 draft-moonesamy-rfc2369bis-00 12 Abstract 14 The mailing list command specification header fields are a set of 15 structured fields to be added to email messages sent by email 16 distribution lists. Each header field typically contains a URI 17 (usually mailto) locating the relevant information or performing the 18 command directly. The three core header fields described in this 19 document are List-Help, List-Subscribe, and List-Unsubscribe. 21 There are three other header fields described here which, although 22 not as widely applicable, will have utility for a sufficient number 23 of mailing lists to justify their formalization here. These are 24 List-Post, List-Owner and List-Archive. 26 By including these header fields, mailing list managers can make it 27 possible for mail user agents to provide automated tools for users to 28 perform list functions. This could take the form of a menu item, 29 push button, or other user interface element. The intent is to 30 simplify the user experience, providing a common interface to the 31 often cryptic and varied mailing list manager commands. 33 Status of this Memo 35 This Internet-Draft is submitted in full conformance with the 36 provisions of BCP 78 and BCP 79. 38 Internet-Drafts are working documents of the Internet Engineering 39 Task Force (IETF). Note that other groups may also distribute 40 working documents as Internet-Drafts. The list of current Internet- 41 Drafts is at http://datatracker.ietf.org/drafts/current/. 43 Internet-Drafts are draft documents valid for a maximum of six months 44 and may be updated, replaced, or obsoleted by other documents at any 45 time. It is inappropriate to use Internet-Drafts as reference 46 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on June 13, 2012. 50 Copyright Notice 52 Copyright (c) 2011 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (http://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the Simplified BSD License. 65 This document may contain material from IETF Documents or IETF 66 Contributions published or made publicly available before November 67 10, 2008. The person(s) controlling the copyright in some of this 68 material may not have granted the IETF Trust the right to allow 69 modifications of such material outside the IETF Standards Process. 70 Without obtaining an adequate license from the person(s) controlling 71 the copyright in such materials, this document may not be modified 72 outside the IETF Standards Process, and derivative works of it may 73 not be created outside the IETF Standards Process, except to format 74 it for publication as an RFC or to translate it into languages other 75 than English. 77 Table of Contents 79 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 80 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 81 1.2. Note . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 82 2. The Command Syntax . . . . . . . . . . . . . . . . . . . . . . 4 83 3. The List Header Fields . . . . . . . . . . . . . . . . . . . . 6 84 3.1. List-Help . . . . . . . . . . . . . . . . . . . . . . . . 6 85 3.2. List-Unsubscribe . . . . . . . . . . . . . . . . . . . . . 7 86 3.3. List-Subscribe . . . . . . . . . . . . . . . . . . . . . . 8 87 3.4. List-Post . . . . . . . . . . . . . . . . . . . . . . . . 8 88 3.5. List-Owner . . . . . . . . . . . . . . . . . . . . . . . . 9 89 3.6. List-Archive . . . . . . . . . . . . . . . . . . . . . . . 9 90 3.7. List-Id . . . . . . . . . . . . . . . . . . . . . . . . . 10 91 4. Supporting Nested Lists . . . . . . . . . . . . . . . . . . . 10 92 5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 93 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 94 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11 95 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 96 8.1. Normative References . . . . . . . . . . . . . . . . . . . 12 97 8.2. Informative References . . . . . . . . . . . . . . . . . . 12 98 Appendix A. Appendix . . . . . . . . . . . . . . . . . . . . . . 12 99 A.1. Client Implementation . . . . . . . . . . . . . . . . . . 12 100 A.1.1. Guidelines . . . . . . . . . . . . . . . . . . . . . . 12 101 A.1.2. Implementation Options . . . . . . . . . . . . . . . . 13 102 A.1.2.1. Key combinations and command lines . . . . . . . . 13 103 A.1.2.2. Menu items . . . . . . . . . . . . . . . . . . . . 13 104 A.1.2.3. Push Buttons and Pallettes . . . . . . . . . . . . 13 105 A.1.2.4. Feedback to the User . . . . . . . . . . . . . . . 14 106 A.2. Changes from RFC 2369 . . . . . . . . . . . . . . . . . . 14 107 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 14 109 1. Introduction 111 RFC 2369 [RFC2369] defined additional header fields to be added to 112 email messages sent by mailing list managers (MLMs). The content of 113 each new header field is typically a URI [RFC3986] - usually mailto 114 [RFC6068] - which identifies the relevant information or performs the 115 command directly. 117 These headers fields are optional. Significant functionality and 118 convenience can be gained by including them. The List-Help header 119 field provides an access point to detailed user support information, 120 and accommodates almost all existing mailing list managers command 121 sets. The List-Subscribe and List-Unsubscribe header fields provide 122 access to two functions commonly requested by mailing list 123 subscribers. 125 The description of command syntax provided by the header fields can 126 be used by mail user agents (MUAs) to provide simplified and 127 consistent user access to mailing list functions. This could take 128 the form of menu items, push buttons, or other user interface 129 elements. The intent is to simplify the user experience, providing a 130 common interface to the often cryptic and varied mailing list manager 131 commands. 133 Consideration has been given to avoiding the creation of too many 134 header fields, while at the same time avoiding the overloading of 135 individual header fields and keeping the syntax clear and simple. 137 The use of these header fields does not remove the requirement to 138 support the -Request command address for mailing lists [RFC2142]. 140 This document obsoletes RFC 2369 [RFC2369]. 142 1.1. Terminology 144 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 145 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 146 document are to be interpreted as described in [RFC2119]. 148 1.2. Note 150 This Internet-Draft can be discussed on the apps-discuss@ietf.org 151 mailing list. [RFC-Editor: please remove this paragraph] 153 2. The Command Syntax 155 The list header fields are subject to the encoding and character 156 restrictions for mail headers fields as described in [RFC5322]. 158 The contents of the list header fields mostly consist of angle- 159 bracket ('<', '>') enclosed URIs [RFC3986], with internal whitespace 160 being ignored. mailing list managers MUST NOT insert whitespace 161 within the brackets. Client applications SHOULD treat any 162 whitespace, that might be inserted by poorly behaved mailing list 163 managers, as characters to ignore. 165 A list of multiple, alternate, URIs MAY be specified by a comma- 166 separated list of angle-bracket enclosed URIs. The URIs have order 167 of preference from left to right. The client application should use 168 the left most protocol that it supports, or knows how to access by a 169 separate application. By this mechanism, protocols like http may be 170 specified while still providing the basic mailto support for those 171 clients who do not have access to non-mail protocols. The client 172 should only use one of the available URIs for a command, using 173 another only if the first one used failed. 175 The use of URIs allows for the use of the syntax with existing URI 176 supporting applications. As the standard for URIs is extended, the 177 list header fields will gain the benefit of those extensions. 178 Additionally, the use of URIs provides access to multiple transport 179 protocols (such as ftp and http) although it is expected that the 180 "mailto" protocol [RFC6068] will be the focus of most use of the list 181 header fields. Use of non-mailto protocols should be considered in 182 light of those users who do not have access to the specified 183 mechanism (those who only have email - with no web access). 185 Command syntaxes requiring variable fields to be set by the client 186 (such as including the user's email address within a command) are not 187 supported by this implementation. However, mailing list managers 188 using such syntaxes should still take advantage of the List-Help 189 field to provide the user with detailed instructions as needed or - 190 perhaps more usefully - provide access to some form of structured 191 command interface such as an HTML-based form. 193 The additional complications of supporting variable fields within the 194 command syntax was determined to be too difficult to support by this 195 protocol and would compromise the likelihood of implementation by 196 software authors. 198 To allow for future extension, it is recommended that client 199 applications follow the guidelines below for handling the contents of 200 the header fields described in this document: 202 1. Except where noted for specific header fields, if the content of 203 the header field (following any leading whitespace, including 204 comments) begins with any character other than the opening angle 205 bracket '<', the header field SHOULD be ignored. 207 2. Any characters following an angle bracket enclosed URI SHOULD be 208 ignored, unless a comma is the first non-whitespace/comment 209 character after the closing angle bracket. 211 3. If a sub-item (comma-separated item) within the field is not an 212 angle-bracket enclosed URI, the remainder of the field (the 213 current, and all subsequent, sub-items) SHOULD be ignored. 215 3. The List Header Fields 217 This document presents header fields which will provide the command 218 syntax description for the 'core' and key secondary functions of most 219 mailing list managers. The header fields implemented on a given 220 mailing list SHOULD be included on all messages distributed by the 221 list (including command responses to individual users), and on other 222 messages where the message clearly applies to one distinct mailing 223 list. There MUST be no more than one of each header field present in 224 any given message. 226 These header fields MUST only be generated by mailing list managers, 227 not by MUAs. Mailing list managers generating the list header fields 228 SHOULD include a mailto based command, in addition to any other 229 protocols used, in order to support users who do not have access to 230 non-mail-based protocols. 232 3.1. List-Help 234 The List-Help header field is the most important of the header fields 235 described in this document. It is acceptable for a mailing list 236 manager to include only this header field, since by definition it can 237 direct the user to complete instructions for all other commands. 238 Typically, the URI specified would request the help file, perhaps 239 incorporating an HTML form for list commands, for the list, and 240 alternatively provide access to an instructive website. 242 Examples: 244 List-Help: (List 245 Instructions) 247 List-Help: 249 List-Help: (Info about the list) 251 List-Help: , 252 254 List-Help: (FTP), 255 257 3.2. List-Unsubscribe 259 The List-Unsubscribe header field describes the command (preferably 260 using mail) to directly unsubscribe the user (removing them from the 261 list). 263 Examples: 265 List-Unsubscribe: 266 268 List-Unsubscribe: (Use this command to get off the list) 269 271 List-Unsubscribe: 272 List-Unsubscribe: 273 , 274 276 3.3. List-Subscribe 278 The List-Subscribe header field describes the command (preferably 279 using mail) to directly subscribe the user (request addition to the 280 list). 282 Examples: 284 List-Subscribe: 285 287 List-Subscribe: (Use this command to join the list) 288 290 List-Subscribe: 292 List-Subscribe: 293 , 294 296 3.4. List-Post 298 The List-Post header field describes the method for posting to the 299 mailing list. This is typically the email address of the mailing 300 list. It can also be the email address of a moderator, or 301 potentially some other form of submission. For the special case of a 302 mailing list that does not allow posting (e.g., an announcements 303 list), the List-Post field may contain the special value "NO". 305 Examples: 307 List-Post: 309 List-Post: (Postings are 310 Moderated) 312 List-Post: 313 315 List-Post: NO (posting not allowed on this list) 317 3.5. List-Owner 319 The List-Owner header field identifies the path to contact a human 320 administrator for the mailing list. The URI may contain the email 321 address of an administrator for the mailing list, the mail system 322 administrator, or any other person who can handle user contact for 323 the mailing list. There is no need to specify List-Owner if it is 324 the same person as the mail system administrator (postmaster). 326 Examples: 328 List-Owner: (Contact Person for 329 Help) 331 List-Owner: (Grant Neufeld) 333 List-Owner: 335 3.6. List-Archive 337 The List-Archive header field describes how to access archives for 338 the mailing list. 340 Examples: 342 List-Archive: 343 345 List-Archive: 347 List-Archive: (Web 348 Archive) 350 List-Archive: 352 The Archive-At header field [RFC5064] provides a pointer to an 353 archived form of a single message. 355 3.7. List-Id 357 The List-Id header field provides an identifier for an e-mail 358 distribution list [RFC2919]. 360 4. Supporting Nested Lists 362 A mailing list that is a sublist for another mailing list in a nested 363 mailing list hierarchy will need to modify some of the List- header 364 fields, while leaving others as the parent list set them. 366 Sublists SHOULD remove the parent list's List-Help, List-Subscribe, 367 List-Unsubscribe and List-Owner header fields, and SHOULD insert 368 their own versions of those header fields. 370 If the sublist provides its own archive, it SHOULD replace the List- 371 Archive with its own. Otherwise, it MUST leave the List-Archive 372 header field untouched. 374 Dependant on how postings to the mailing list are handled, the 375 sublist MAY replace the List-Post field. The appropriateness of 376 whether to replace List-Post is left to the determination of the 377 individual list administrators. If the intention is that postings 378 should be distributed to all members of the primary mailing list, 379 List-Post should not be changed by a sublist in such a way that 380 postings will be distributed only to members of the sublist. 382 5. Security Considerations 384 There are very few new security concerns generated with this 385 proposal. Message headers fields are an existing standard, designed 386 to easily accommodate new types. There may be concern with multiple 387 header fields being inserted or headers fields being forged, but 388 these are problems inherent in Internet mail, not specific to this 389 specification. Furthermore, the implications are relatively 390 harmless. 392 Mailing list managers should not allow any user-originated list 393 header fields to pass through to the mailing lists, lest they confuse 394 the user and have the potential to create security problems. 396 On the client side, there may be some concern with posts or commands 397 being sent in error. It is required that the user have a chance to 398 confirm any action before it is executed. In the case of mailto, it 399 may be appropriate to create the correctly formatted message without 400 sending it, allowing the user to see exactly what is happening and 401 giving the user the opportunity to approve or discard the message 402 before it is sent. 404 All security considerations for the use of URIs [RFC3986] apply 405 equally to this specification. Mail User Agents should not process 406 list header field URIs which could compromise the security of the 407 user's system. This includes the "file://" URI type which could 408 potentially be used to trigger the execution of a local application 409 on some user systems. 411 6. IANA Considerations 413 The List-Archive, List-Help, List-Owner, List-Post, List-Subscribe, 414 and List-Unsubscribe references in the Permanent Message Header Field 415 Names registry should be updated to point to this document. 417 7. Acknowledgements 419 Most of the text in this document was copied from RFC 2369, authored 420 by Joshua D. Baer and Grant Neufeld. 422 The numerous participants of the List-Header, ListMom-Talk, List- 423 Managers and MIDA-Mail mailing lists contributed much to the 424 formation and structure of RFC 2369 with Keith Moore and Christopher 425 Allen providing guidance on the standards process. 427 8. References 429 8.1. Normative References 431 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 432 Requirement Levels", BCP 14, RFC 2119, March 1997. 434 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 435 Resource Identifier (URI): Generic Syntax", STD 66, 436 RFC 3986, January 2005. 438 [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, 439 October 2008. 441 [RFC6068] Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto' 442 URI Scheme", RFC 6068, October 2010. 444 8.2. Informative References 446 [RFC2142] Crocker, D., "MAILBOX NAMES FOR COMMON SERVICES, ROLES AND 447 FUNCTIONS", RFC 2142, May 1997. 449 [RFC2369] Neufeld, G. and J. Baer, "The Use of URLs as Meta-Syntax 450 for Core Mail List Commands and their Transport through 451 Message Header Fields", RFC 2369, July 1998. 453 [RFC2919] Chandhok, R. and G. Wenger, "List-Id: A Structured Field 454 and Namespace for the Identification of Mailing Lists", 455 RFC 2919, March 2001. 457 [RFC5064] Duerst, M., "The Archived-At Message Header Field", 458 RFC 5064, December 2007. 460 Appendix A. Appendix 462 A.1. Client Implementation 464 A.1.1. Guidelines 466 For 'mailto' URI based commands, Mail User Agents may choose to 467 provide specialized feedback (such as presenting a dialog or alert), 468 instead of the actual command email message, asking for command 469 confirmation from the user. The feedback should identify the message 470 destination and command within a more descriptive explanation. For 471 example: 473 "Do you want to send the unsubscription command 'unsubscribe 474 somelist' to 'somelist-request@some.example.com'? Sending the 475 command will result in your removal from the associated list." 477 If the user has multiple email addresses supported by the Mail User 478 Agent, the MUA should prompt the user for which email address to use 479 when subscribing or performing some other action where the email 480 address to use cannot be specifically determined. When unsubscribing 481 or such, the email address that is subscribed should be used, unless 482 that is not known by the application and cannot be determined from 483 the message headers. 485 A.1.2. Implementation Options 487 The following implementation possibilities are suggested here to give 488 some idea as to why these new header fields will be useful, and how 489 they could be supported. 491 In most cases, it may be helpful to disable the interface for the 492 commands when not applicable to the currently selected message. 494 A.1.2.1. Key combinations and command lines 496 On text based systems which utilize command lines or key 497 combinations, each field could be implemented as a separate command. 498 Thus one combination would subscribe the user, another would 499 unsubscribe, a third request help, etc. The commands would only be 500 available on messages containing the list header fields. 502 A.1.2.2. Menu items 504 On graphical systems which have menus, these commands could take the 505 form of a menu or sub-menu of items. For example, a "Lists" menu 506 might appear when viewing messages containing the header fields, with 507 items named "Subscribe", "Unsubscribe", "Get Help", "Post Message to 508 List", "Contact List Owner" and "Access List Archive". This menu 509 could be disabled when not applicable to the current message or 510 disappear entirely. 512 A.1.2.3. Push Buttons and Pallettes 514 On graphical window systems, buttons could be placed in the window of 515 the message, a toolbar, or in a floating pallette of their own. Each 516 button could correspond to a command, with names "Subscribe", 517 "Unsubscribe", "Get Help", "Post to List", "List Owner" and 518 "Archive". These buttons or pallettes could be disabled when not 519 applicable to the current message or disappear entirely. 521 A.1.2.4. Feedback to the User 523 If using a dialog interface (or other feedback element) the mail user 524 agent must include an option for the user to review (and possibly 525 modify) the message before it is sent. It may also be useful for 526 mail user agents to provide a link to more detailed context- 527 sensitive assistance about mailing list access in general. 529 A.2. Changes from RFC 2369 531 This appendix contains a list of changes between this document and 532 RFC 2369. 534 o URL changed to URI 536 o Replaced MTAs with mailing list managers in the sentence: "MTAs 537 generating the header fields SHOULD". 539 o Replaced MTAs with mailing list managers in the sentence: "MTAs 540 MUST NOT insert whitespace within the brackets" in Section 2 542 o In Section 2, client application SHOULD ignore whitespace within 543 brackets 545 o Updated references 547 o Added informative references to RFC 2919 and RFC 5064 549 o Editorial changes 551 o Removed Background Discussion 553 Author's Address 555 S. Moonesamy (editor) 556 76, Ylang Ylang Avenue 557 Quatre Bornes 558 Mauritius 560 Email: sm+ietf@elandsys.com