<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">

<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
	submissionType="independent" category="exp"
	docName="draft-vesely-fix-forwarding-00"
	ipr="trust200902" obsoletes="" updates="" xml:lang="en"
	tocInclude="true" tocDepth="2" symRefs="true" sortRefs="false" version="3"> 

	<front>
		<title abbrev="Fix Forwarding">
	Agreements To Fix Forwarding</title>

		<seriesInfo name="Internet-Draft" value="draft-vesely-fix-forwarding-00"/>

		<author fullname="Alessandro Vesely" initials="A." surname="Vesely">
			<organization/>
			<address>
				<postal>
					<street>via L. Anelli 13</street>
					<code>20122</code>
					<city>Milano</city>
					<region>MI</region>
					<country>Italy</country>
				</postal>
				<email>vesely@tana.it</email>
			</address>
		</author>
		<date day="7" month="July" year="2023"/>
		<keyword>ARC</keyword>
		<keyword>DMARC</keyword>
		<keyword>DKIM</keyword>
		<keyword>Mailing List</keyword>
		<keyword>MLM</keyword>
		<keyword>Forwarding</keyword>
		<abstract>
			<t>
	The widespread adoption of Domain-based Message Authentication,
	Reporting, and Conformance (DMARC) causes problems to indirect
	mail flows.  This document proposes a protocol to establish
	forwarding agreements whereby a mailbox provider can whitelist
	indirect mail flows directed toward its users by maintaining 
	per-user lists of agreements.</t>
		</abstract>
	</front>

	<middle>
		<section numbered="true" toc="default">
			<name>Introduction</name>

			<t>
	The ability to send messages to anyone without prior agreement is 
	a feature at the base of the success of Internet mail.  It also 
	exposes a way to abuse, though.  Domain-based email 
	authentication can limit abusive behavior by enabling receivers 
	to unambiguously attribute responsibility of messages, and 
	thereby to develop domain reputation. However, indirect mail 
	flows, such as mailing lists and aliases are seriously 
	hindered by such authentication practices (see <xref 
	target="RFC7960"/>).  Although they constitute a minor part of the 
	global mail traffic, such hindrance poses a problem, which is 
	what the present protocol attempts to fix.</t>

			<t>
	Many mailing lists break DomainKeys Identified Mail (DKIM) 
	signatures (<xref target="RFC6376"/>) by adding a subject tag or 
	a message footer.  Aliases break Sender Policy Framework (SPF) 
	(<xref target="RFC7208"/>) if forwarders don't change the bounce 
	address, or break its alignment with the From: header field if 
	they do.  In both cases, they break Domain-based Message 
	Authentication, Reporting, and Conformance (DMARC) (<xref 
	target="RFC7489"/>) if there is no DKIM signature.</t>

			<t>
	Rewriting the very From: field, an operation known as From: 
	munging, is a sender side solution to this problem, adopted by 
	most mailing lists; see <xref target="RFC7960" sectionFormat="of" 
	section="4.1.3.1"/> for a detailed description.  Aliases, 
	instead, can be avoided by having the target pull messages using 
	a mail retrieval protocol rather than pushing them via SMTP.  As 
	an alternative, this document proposes a cooperative method that 
	hinges on the peculiarity that both of these forwarding methods 
	require settings which produce well recognizable mail flows.  To 
	present by example, let's consider the procedure whereby 
	alice@example.com subscribes to the mailing list 
	participants@lists.example.org. The first three steps are well 
	known practice.  The extra steps are introduced by this 
	protocol:</t>

	<ol>
		<li><t>Alice subscribes to the list, either by visiting 
		example.org web site or by sending a request to the list 
		manager.</t></li>

		<li><t>The mailing list manager (MLM) sends a confirm 
		message with a unique token to be returned for confirmation, 
		either via web or via mail.</t></li>

		<li><t>Alice confirms the subscription.</t></li>

		<li><t>The MLM looks up _fixforwarding.example.com on the DNS 
		to check if Alice's provider supports forwarding agreements 
		(see <xref target="txt-record"/> for the TXT record format).  
		If found, the MLM applies for a permission to send mailing list 
		messages that may fail DMARC checks (see <xref 
		target="form-content"/> for the web form it has to 
		fill).</t></li>

		<li><t>Upon receiving the MLM application, example.com sends a 
		message to its user Alice, asking whether she agrees to receive 
		that specific mail flow.</t></li>

		<li><t>Alice confirms to her provider too.</t></li>

		<li><t>Example.com adds participants@lists.example.org to 
		the list of forwarders that Alice agreed upon.  Then, it 
		confirms to the MLM that the agreement is set up.</t></li>

		<li><t>The MLM modifies Alice's subscription options 
		removing From: munging for messages sent to her.</t></li>

		<li><t>Example.com recognizes messages belonging to this mail 
		flow by (1) authenticating example.org and (2) checking the 
		List-ID: header field.  As this matches Alice's list of 
		exemptions, DMARC failures can be safely ignored.</t></li>
	</ol>

	<t>
	Steps 4 to 9 are discussed in detail in the following sections.  
	For software requirements, note that step 8 implies the ability 
	to configure From: munging per subscriber; <xref 
	target="no-munge"/> proposes a method to achieve such effect. 
	Step 9 requires that the DMARC verifier be able to do per-user 
	exemptions as described in <xref target="mgmnt"/></t>
		</section>



		<section numbered="true" toc="default">
			<name>Terms Definitions</name>
			<t>
	The term <strong>forwarder</strong> is used to mean the entity 
	that forwards messages, which is either a mailing list or an 
	alias, according to SMTP (<xref target="RFC5321"/>).</t>

			<t>
	A <strong>receiving domain</strong> is a domain which receives 
	messages sent by a forwarder.</t>

			<t>
	<strong>Signers</strong> and <strong>verifiers</strong> are 
	defined by DKIM (<xref target="RFC6376"/>).  The use of the term 
	<strong>Mailing List Manager</strong>, almost always abbreviated 
	<strong>MLM</strong> follows <xref target="RFC6377"/>. A MLM is a 
	kind of <strong>Mediator</strong> in <xref target="RFC5598"/> 
	parlance. It is usually composed of a Message Transfer Agent 
	(MTA) with the usual suite of tools plus the mailing list 
	specific software.</t>

			<t>
	<strong>Message</strong> is defined in <xref target="RFC5322"/>.  It
	consists of a <strong>header</strong> made up of one or more
	<strong>fields</strong>, and a <strong>body</strong> possibly
	composed of various MIME <strong>entities</strong>, the latter
	being defined in <xref target="RFC2045"/> and companions.</t>

			<t>
	We use <strong>colon</strong> (:) to indicate header field names,
	as in From:, To: and the like.</t>

			<t>
	The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 
	NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", 
	"MAY", and "OPTIONAL" in this document are to be interpreted as 
	described in BCP 14 <xref target="RFC2119"/> <xref 
	target="RFC8174"/> when, and only when, they appear in all 
	capitals, as shown here.</t>
		</section>



		<section anchor="sender-rewrite" numbered="true" toc="default">
			<name>Note About Rewriting the Bounce Address</name>
			<t>
	Traditionally, alias expansion re-injects messages in the mail 
	system changing just the envelope recipient address.  That is, 
	without rewriting the bounce address, a.k.a. envelope sender. 
	This is what SMTP <xref target="RFC5321"/> prescribes.  However, 
	from an authentication perspective, this doesn't always work, 
	because some MTAs reject SPF failures —those matching a -all 
	directive (see <xref target="RFC7208"/>)— during the early stages 
	of the SMTP protocol; that is, before DKIM or ARC <xref 
	target="RFC8617"/> can be verified.</t>

			<t>
	It is handy to leave the bounce address intact in order to have 
	the message author notified in case of failed delivery, which 
	increases email reliability.  However, nowadays MTAs try and 
	minimize backscatter by avoiding to accept messages that can 
	bounce.  On the other hand, transient failures, such as mailbox 
	full, became less and less frequent.  If a delivery fails because 
	the target mailbox was deleted, the forwarding setup has to be 
	dismantled.  A broken alias which unflaggingly generates bounces 
	to any bounce address is akin to an open relay.  Albeit limited 
	to non-delivery notifications, it can be exploited for spamming.  
	In order to avoid playing such role, a receiver can carefully 
	verify the bounce address before accepting a message, so expect 
	your target to behave accordingly.</t>

			<t>
	We recommend to replace the bounce address with the internal 
	address of a human or a robot which can understand what to do.  
	Nevertheless, this protocol provides for a way to enter into an 
	agreement which covers traditional alias expansion. According to <xref 
	target="RFC7208" sectionFormat="of" section="D"/>, domains 
	consult a whitelist if they reject SPF "fail" messages before 
	receiving the message data.  If the whitelist they consult is a 
	public DNS-based whitelist (DNSWL, <xref target="RFC5782"/>) 
	which includes the forwarder's IP address, then traditional 
	alias expansion can work even in the face of strict SPF policies.</t>

			<t>
	To recap, an MTA can check SPF after the MAIL but before the DATA 
	SMTP commands.  If the result is "fail", the MTA consults one or 
	more DNSWLs.  If the sending IP address is whitelisted, then the 
	MTA delays the decision to reject to a later stage, when the 
	message content is received and DKIM or ARC verified.  Thus, 
	an agreement providing for traditional alias expansion is possible if 
	either one of the following two conditions holds:</t>
			<ol>
				<li>
	The target MXes consult public DNSWLs and the forwarder is 
	subscribed to at least one of them, or</li>
				<li>
	the target MXes never reject before receiving and evaluating the 
	message content.</li>
			</ol>
			<t>
	If and which of these conditions holds can be determined based on 
	the dnswl= tag declaration, as described in <xref 
	target="txt-record"/>.</t>
		</section>



		<section anchor="txt-record" numbered="true" toc="default">
			<name>Underscored FixForwarding DNS Resource Record</name>
			<t>
	Domains participating in this protocol notify it to all 
	interested parties by publishing an "underscored" resource 
	record named _fixforwarding.  According to <xref 
	target="RFC8552"/>, this record is labeled as a subdomain of 
	the domain it refers, which is the domain-part of the pertinent 
	email addresses.</t>

			<t>
	The record contains the conditions that an applicant MUST meet 
	before applying for an agreement as well as an URI 
	to post requests to.  Requests details 
	are specified in <xref target="form-content"/>.</t>

			<t>
	The format of the _fixforwarding record follows the extensible "tag-value" 
	syntax for DNS-based key records defined in DKIM <xref 
	target="RFC6376"/>.  The folding white space terminal, FWS, is 
	also defined there.  The following tags are defined here:</t>

			<dl newline="true">
				<dt anchor="auth"><strong>auth</strong></dt>
				<dd><t>
	Authentication method used to identify the forwarder's domain; 
	OPTIONAL, by default the method is ARC (<xref 
	target="RFC8617"/>, but DKIM is allowed as an alternative.  
	A forwarder MUST implement the required method before applying.</t>
	<t>ABNF: </t>
					<sourcecode type="abnf">
rec-auth-tag        = %s"auth" [FWS] "=" [FWS] rec-auth-tag-method
rec-auth-tag-method = %s"arc" / %s"dkim"
					</sourcecode>
				</dd>

				<dt><strong>dnswl</strong></dt>
				<dd>
					<t>
	Either a comma-separated list of DNSWLs (see <xref 
	target="RFC5782"/>) that the domain's MXes consult before 
	rejecting SPF failures at the early stages of SMTP transactions, 
	or the keyword "n.a.", for not applicable; OPTIONAL, by default 
	an empty list.  See <xref target="sender-rewrite"/>.  An empty 
	list, the default,  means this option is not available; that is, 
	forwarders MUST change the bounce address to an SPF valid one.  
	The "n.a." keyword means the opposite; that is, forwarders MAY 
	leave the original bounce address intact.  One or more domains 
	mean the conditional acceptance; that is, the DNS name that 
	results by prepending the reverse IP address of the forwarder to 
	one of those domains resolves to an A IP address when 
	queried.</t>
<t>ABNF:</t>
					<sourcecode type="abnf">
rec-dnswl-tag      = %s"dnswl" [FWS] "=" [FWS] [rec-dnswl-tag-opt]
rec-dnswl-tag-opt  = rec-dnswl-tag-list / rec-dnswl-tag-na
rec-dnswl-tag-list = domain *("," domain)
rec-dnswl-tag-na   = %s"n.a."
					</sourcecode>

					<t>
	Where domain is imported from <xref target="RFC5322"/>.  	Each 
	domain of the list is a DNS zone that can be queried by 
	prepending reversed IP addresses.  For best interoperability, it 
	is RECOMMENDED to use organizations that admit free subscriptions.</t>
				</dd>

				<dt><strong>post</strong></dt>
				<dd><t>
	This is the URI to post web form requests to.  Web format is
	described in <xref target="form-content"/>.  This is an HTTPS or HTTP 
	URI.</t><t>ABNF:</t>
					<sourcecode type="abnf">
rec-post-tag     = %s"post" [FWS] "=" [FWS] rec-post-tag-uri
rec-post-tag-uri = https-URI / http-URI
					</sourcecode>
					<t>
	Where https-URI and http-URI are imported from <xref 
	target="RFC9110"/>.</t>
				</dd>
			</dl>

		</section>
		<section anchor="form-content" numbered="true" toc="default">
			<name>Forwarding Agreement Web Form</name>
			<t>
	Receiving domains participating in this protocol set up a web 
	form whereby forwarders can apply for a permission to send 
	messages that may fail DMARC checks.  Forwarders who wish to 
	enter an agreement with the receiving domain fill the form 
	supplying the values requested, chiefly email address contacts. 
	As there is a predefined set of fields, applicants can prepare a 
	script which runs automatically when the availability of the form 
	is detected by the _fixforwarding resource record, and the 
	conditions therein are met.  Yet, receiving domains SHOULD 
	provide at the same post= URL an HTML form to be filled manually, 
	so that it is possible to enter an agreement also without 
	developing a special script.  When no value is posted the form 
	displays the empty fields to be filled; when values are posted it 
	displays the results. Posted values can be encoded using either 
	the application/x-www-form-urlencoded or the multipart/form-data 
	media types (see <xref target="RFC7578"/>).</t>

			<t>
	Receiving domains SHOULD check that the values posted are 
	acceptable and return a 400 HTTP status code otherwise.  If 
	everything is fine, the HTTP server stores the values for later 
	processing and returns status code 202.  The resulting agreement 
	status will be sent to the base address of the applicant after 
	checks are completed. Keep in mind that this may take a human 
	lapse of time.</t>

			<section numbered="true" toc="default">
				<name>The Transistor Metaphor</name>
				<t>
	Three email addresses play a key role, the entry point where the 
	messages to be forwarded arrive, the target address which is the 
	subject of the agreement, and the base address where the state of 
	the agreement is sent, including the results of the form 
	submission.  Following a transistor metaphor we name these fields 
	<strong>collector</strong>, <strong>emitter</strong> and 
	<strong>base</strong> respectively.</t>
			</section>

			<section numbered="true" toc="default">
				<name>Form Fields</name>

				<dl newline="true">
					<dt><strong>abuse</strong></dt>
					<dd><t>
	The abuse-team or similar entity email address, where complaints 
	about perceived forwarder's misbehavior can be sent.</t>
					</dd>

					<dt><strong>agreement-id</strong></dt>
					<dd><t>
	A globally unique string that identifies a request and the 
	related agreement.  This has the syntax of a Message-ID field 
	<xref target="RFC5322"/> and is RECOMMENDED that the right-hand 
	side contain the same domain identifier used for signatures, if 
	it is able to guarantee the uniqueness of the left-hand side 
	within itself.  Angle brackets not to be included.</t>
					</dd>

					<dt><strong>base</strong></dt>
					<dd><t>
	The forwarder's email address where the receiving domain sends 
	the agreement acceptance, rejection, renewal or cancellation.  
	These are machine-readable email messages that may contain a 
	human-readable part.  The message format is described in <xref 
	target="result-email"/>.</t>
					</dd>

					<dt><strong>collector</strong></dt>
					<dd><t>
	The mailing list post address, or the address that the alias is 
	attached to.</t>
					</dd>

					<dt><strong>domain</strong></dt>
					<dd><t>
	The forwarder's domain to be authenticated by the receiver. It is 
	the domain indicated in the d= tag of DKIM-Signature: or 
	ARC-Seal: and ARC-Message-Signature: header fields, according to 
	the auth method (<xref target="auth"/>). The domain MUST match 
	the trailing part of the list-id.  It is suggested that the two 
	identifiers match as much as practical.</t>
					</dd>

					<dt><strong>emitter</strong></dt>
					<dd><t>
	The user-confirmed email address that subscribed to the mailing list, or 
	the target address of an alias.</t>
					</dd>

					<dt><strong>list-id</strong></dt>
					<dd><t>
	List-ID:s are naturally present in mailing list, and identify the 
	list that the user subscribed to.  For aliases, a list-id MUST be 
	created, for example by concatenating an encoded representation 
	of the collector and the signing domain.  This is the globally 
	unique list-id identifier, which MUST be included in a List-Id: 
	header field, in angle brackets as specified by <xref 
	target="RFC2919"/>, in every forwarded message.  This field is 
	needed to unequivocally identify the mail flow.  The trailing 
	part of the list-id MUST match the domain. The List-Id: header 
	field SHOULD be signed. Failure to do so can be exploited to 
	damage MLM reputation by replaying suitable messages.</t>
					</dd>

				</dl>
			</section>
		</section>

		<section anchor="mgmnt" numbered="true" toc="default">
			<name>Agreement Management</name>

			<t>
	Request processing involves interaction with the user, therefore 
	the result can become available after some time.  For honest 
	requests, the user is expected to confirm.  Asking for user 
	confirmation can also be an occasion to manage mailbox details 
	such as what folder or label would the user like to associate 
	with the mail flow.  Mailbox providers can also implement a web 
	application that lists the status of all forwarding agreements.  
	It would be somewhat more reliable than the monthly subscription 
	reminders, which some call a distributed in time database.</t>

			<t>
	The receiving domain MAY accept or reject the agreement.  If it 
	accepts,  it stores the form values that the forwarder supplied, 
	so as to be able to manage the agreement.  The agreement-id is a 
	good candidate for the filename or database key used to retrieve 
	that data.  Keep in mind that there is an agreement for each 
	&lt;collector, list-id&gt; pair.</t>

			<t>
	To honor the agreement, a DMARC filter only needs two items of 
	the agreement data, the emitter and the list-id.  For ARC, the filter 
	checks the validity of the chain and the validity of the 
	ARC-Message-Signature: whose d= domain matches the list-id (when 
	oldest-pass is set, it must not be bigger than the instance, i= 
	of the list-id signer).  For DKIM, a valid signature with d= matching 
	the list-id assures of the message origin.  Next, the DMARC 
	filter checks whether the pair &lt;recipient, list-id&gt; 
	corresponds to an active agreement.  If the message is thus found 
	to be part of an agreed upon mail flow, the DMARC filter MUST 
	exempt it from undergoing the DMARC policy published by the 
	message's From: domain.  If the receiving domain sends aggregate 
	reports, the messages thus exempted SHALL be counted under the 
	trusted_forwarder PolicyOverrideType.</t>

			<t>
	The receiving domain MAY extend the exemption to other 
	recipients.  Otherwise, if a message is destined to more 
	recipients, each one must be the subject of a forwarding 
	agreement.</t>

			<t>
	After setting up DMARC exemptions, the receiving domain sends an 
	acceptance email to the base address of the forwarder.  From that 
	moment, the forwarder can stop From: munging messages destined to the 
	relevant subscriber.  The agreement can last indefinitely.  
	However, at any time, if the receiving domain suspects that the 
	mail flow is not active any more, it MAY send a renewal notice to 
	check.  The agreement MUST be honored until the receiving domain 
	sends a cancellation.  See <xref target="result-email"/> for the
	format of these messages.</t>

			<t>
	The agreement SHOULD be canceled after the user unsubscribes from 
	the mailing list or when the mailbox is torn down.  Conversely, a 
	cancellation should imply removal, or at least questioning the 
	forwarding itself, whether mailing list or alias.</t>
		</section>



		<section anchor="result-email" numbered="true" toc="default">
			<name>Messages to the Base</name>
			<t>
	There are four types of messages that can be sent by the 
	receiving domain to the forwarder base address.  These messages 
	define the state of the forwarding agreement.  Such state is 
	determined at the incontestable discretion of the receiving 
	domain.  The forwarder SHOULD reply to these messages as a means 
	to acknowledge their reception.  If the forwarder doesn't have 
	any reference about the agreement, it MAY bounce the message or 
	give a negative reply to it.  The receiving domain SHOULD 
	re-send the message if a reply or a bounce is not received within 
	a reasonable time (days).
			</t>

			<t>
	The message types are as follows:</t>

			<dl>
				<dt><strong>acceptance</strong></dt>
				<dd><t>
	The receiving domain accepts the agreement.  From the time this 
	message is received onward, messages can avoid From: munging or, if 
	allowed by the receiving domain, bounce address rewriting.</t>
				</dd>

				<dt><strong>rejection</strong></dt>
				<dd><t>
	The receiving domain, presumably after user disavowal, denies the 
	agreement.  Failed authentications can then be rejected or quarantined.  
	The forwarding itself should be questioned.  A new agreement SHOULD 
	NOT be requested again unless further interactions occur, such as 
	the user unsubscribing and re-subscribing.</t>
				</dd>

				<dt><strong>renewal</strong></dt>
				<dd><t>
	The receiving domain needs a confirmation that this forwarding 
	mechanism is still on.  The forwarder should check that the 
	mechanism implied by the agreement is still active before 
	replying.  Failure to reply can result in the agreement 
	cancellation.</t>
				</dd>

				<dt><strong>cancellation</strong></dt>
				<dd><t>
	The agreement is canceled.  For mailing lists, the user should 
	have already unsubscribed.  The alias should be removed.</t>
				</dd>
			</dl>

			<t>
	These messages are plain text messages with no attachments and no 
	MIME multipart entities.  The agreement-id and the message type 
	are repeated in the Subject: and in the beginning of the body.  
	The rest of the body MAY contain any text.</t>

<t>ABNF:</t>
					<sourcecode type="abnf">
msg-subject       = msg-tag WSP agreement-id ":" [WSP] msg-type
msg-tag           = "[FixForwarding]"
msg-body          = agreement-id-line msg-type-line msg-rest
agreement-id-line = [CRLF] "agreement-id" ":" [WSP] agreement-id CRLF
msg-type-line     = [CRLF] "deal" ":" [WSP] msg-type CRLF
msg-rest          = *OCTET
msg-type          = %s"acceptance" / %s"rejection" /
                    %s"renewal" / %s"cancellation"
agreement-id      = id-left "@" id-right
subject           = "Subject" ":" msg-subject CRLF
message           = fields CRLF msg-body
					</sourcecode>
			<t>
	Where WSP, CRLF and OCTET are imported from <xref 
	target="RFC5234"/>; subject, id-left, id-right and fields from 
	<xref target="RFC5322"/>.</t>

			<t>
	Replies SHALL also be text/plain, retaining the Subject: and body 
	of the original message, possibly prefixed as is customary for 
	Internet mail, for example by prefixing the subject with "Re:" and 
	body text lines with "> ".  Replies MUST properly set 
	In-Reply-To: and References: fields.  The receiving domain can 
	use those to match replies with the original message.  For 
	negative replies which are not bounces, the first word in the 
	body, and possibly the Subject: prefix,  MUST be "NO".</t>
<t>ABNF:</t>
					<sourcecode type="abnf">
negative-reply  = fields CRLF %s"NO" CRLF msg-body
					</sourcecode>

			<t>
	Both messages and replies MUST be duly authenticated.</t>

			<t>
	Negative replies are sent when the forwarder has no knowledge of 
	the agreement-id.  That means the agreement was previously 
	canceled, never properly archived and in any case it is not 
	active. After a negative reply, the receiving domain can cancel 
	the agreement without further notice.</t>

			<t>
	Replies which are not negative replies are positive 
	acknowledgments of the deal.  Replies to cancellation and 
	rejection have the same effect whether positive or negative, and both 
	sides can remove any reference to the agreement afterwards.</t>

		</section>

		<section anchor="iana" numbered="true" toc="default">
			<name>IANA Considerations</name>
			<t>
	Per <xref target="RFC8552"/>, please add the following entry to 
	the "Underscored and Globally Scoped DNS Node Names" 
	registry:</t>

			<figure><artwork><![CDATA[
   +---------+-------------------+-------------+
   | RR Type | _NODE NAME        | Reference   |
   +---------+-------------------+-------------+
   | TXT     | _fixforwarding    | [This.I-D]  |
   +---------+-------------------+-------------+
]]></artwork></figure>

		</section>



		<section numbered="true" toc="default">
			<name>Privacy Considerations</name>
			<t>
	Forwarding agreements expose users' mailing list participation 
	and forwarded identities to their mailbox provider admins. That 
	is unavoidable.  It has to be noted, though, that such knowledge 
	can hardly be kept secret from people who have access to all 
	their mail. Users need to trust their mailbox provider, and this 
	protocol is not the only reason why they have to. Still, in 
	situations where the forwarder wants to hide its forwarding from 
	the receiving domain, it SHOULD NOT request a forwarding 
	agreement.  Instead, rewriting bounce address and From: header 
	fields, besides bettering deliverability, may also help hiding 
	the true origin of messages.</t>
		</section>



		<section numbered="true" toc="default">
			<name>Security Considerations</name>
			<t>
	Maintaining per-user DMARC exemptions excludes gaming, especially 
	for domains that provide mailboxes to anonymous users.  Domains 
	that restrict mailboxes to internal users can balance their 
	knowing of the user involved in an agreement request and the 
	reputation of the applicant to decide whether to trust the 
	forwarder for all users rather than just for the one at hand.  
	The forwarder doesn't know about this decision, albeit it may 
	guess it by the speed characterizing the acceptance of further 
	agreements.  This kind of decision slightly simplifies DMARC 
	filter settings, but not agreements management.</t>

			<t>
	Forwarders SHOULD verify DMARC and apply author domain policies 
	whenever possible.  Especially mailing lists, unless they collect 
	posts from other mailing lists in turn, should reject messages 
	from domains who publish p=reject if authentication fails. 
	Receiving domains MUST NOT reject messages belonging to an 
	accepted agreement for DMARC policy reasons.  DMARC Filtering 
	MUST be applied by the forwarder.  Failure to do so SHOULD be 
	reported to the forwarders abuse address.</t>

			<t>
	Forwarders MUST also apply some content filtering. They must 
	reject or drop blatant spam.  MLMs that provide for moderation 
	can treat dubious messages that way.  Aliases may need to forward 
	dubious messages, since they cannot resort to spam folders or 
	similar quarantine measures. The receiving domain MAY reject or 
	quarantine messages whose content doesn't meet its policies, 
	under its responsibility.  While mailing lists exercise some 
	control on the quality of messages, aliases are completely 
	transparent. When bad messages belong to a forwarding agreement, 
	their quality is not to be ascribed the forwarder's reputation 
	but the author domain's.</t>
		</section>

	</middle>

	<back>
		<references>
			<name>References</name>
			<references>
				<name>Normative References</name>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2045.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2919.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5321.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5322.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5782.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6376.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7489.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7578.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8617.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9110.xml"/>
			</references>
			<references>
				<name>Informative References</name>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5598.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6377.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7208.xml"/>
				<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7960.xml"/>
			</references>
		</references>

		<section anchor="no-munge" numbered="true" toc="default">
			<name>No-Munging Method</name>
			<t>
	This protocol assumes that From: munging can be enabled or 
	disabled on a per-user basis.  Many MLMs provide instead an 
	option to enable or disable it on a per-list basis.  Here's a way to 
	overcome this limitation.</t>

			<t>
	Have an umbrella list with two sibling sub-lists, one configured 
	with From: munging, the other one without.  Both sub-lists refuse 
	all posts, and advertise the umbrella list as the destination for 
	posts.</t>

			<t>
	The umbrella list accepts posts according to site and list policy.    
	It has the sibling sub-lists as its only subscribers, and won't 
	accept more.</t>

			<t>
	The sibling sub-list that does From: munging accepts subscribers 
	under the site and list policy. When forwarding agreements are 
	accepted, the relevant subscribers are moved to the other 
	sub-list.</t>

		</section>

	</back>
</rfc>
