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

<!DOCTYPE rfc [
 <!ENTITY nbsp    "&#160;">
 <!ENTITY zwsp   "&#8203;">
 <!ENTITY nbhy   "&#8209;">
 <!ENTITY wj     "&#8288;">
]> 

<rfc version="3" ipr="trust200902" docName="draft-ietf-mailmaint-expires-06" number="10080" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" updates="4021" obsoletes="" tocInclude="true" consensus="true" sortRefs="true" symRefs="true">

<front>
<title abbrev="Expires Header Field">Updated Use of the Expires Message Header Field</title>
<seriesInfo name="RFC" value="10080"/>
<author initials="B." surname="Billon" fullname="Benjamin Billon">
    <organization>Splio</organization>
    <address>
    <email>bbillon@splio.com</email>
    </address>
</author>
<author initials="J." surname="Levine" fullname="John Levine">
    <organization>Standcore LLC</organization>
    <address>
    <email>standards@standcore.com</email>        
    </address>
</author>
<date month="October" year="2026"/>

<area>ART</area>
<workgroup>mailmaint</workgroup>

<keyword>email</keyword>

<abstract>
<t>This document allows broader use of the "Expires" message header field for mail messages.
Message creators can then indicate when a message
expires, while recipients can use this information to
handle an expired message differently.</t>
</abstract>

</front>

<middle>

<section anchor="introduction"><name>Introduction</name>
<t><xref target="RFC2156"></xref> defined a mapping of header fields between the formats specified in X.400 and 
<xref target="RFC822"></xref>.  One of the mapped fields is the "Expires" header
field, which provides a date and time at which a message is
considered to lose its validity.</t>
<t><xref target="RFC4021"></xref> registered the field with IANA but stated that it is "not for general use."
This document extends the use of the "Expires" header field to
Internet email in general, whether the message comes from an X.400
gateway or elsewhere.</t>
<t>Netnews articles <xref target="RFC5536"></xref> have an "Expires" header with a similar, slightly more strict, syntax and similar meaning.</t>
<t>The date and time of expiration can be used by the mailbox provider or the MUA (Mail User Agent) to
de-emphasize certain messages, or not display them at all, to unclutter the user's mailbox.</t>
<t>A Message Creator is an agent that generates messages for delivery.
In the parlance of <xref target="RFC5598"></xref>, this is an Author or Originator.</t>
<t>A Message Reader is either an agent consuming a message or an agent
storing a message. In the parlance of <xref target="RFC5598"/>, this is a Message Store or a
Message User Agent.</t>

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

<section anchor="expiration"><name>Defining Expiration</name>
<t><xref target="RFC2156"></xref> defined a field called "Expires", which replaced "Expiry-Date" introduced in <xref target="RFC1327"></xref>.
It did not define the term further, except to say that no automatic handling past that date can be expected.
<xref target="RFC5536"></xref> defined "Expires" for Netnews as a date and time beyond which the poster considers the article no longer relevant and thus suitable for removal; however, it did not actually require such removal.
The consensus definition used in this document is that beyond the stated expiration date, the message "loses its validity".</t>
<t>The header field's use in email has been limited, with no formal semantic definition to date.
No consensus exists to establish a more precise definition, in deference to existing implementations.
Accordingly, no additional normative definition is provided here, nor is any requirement established for any particular
handling by message readers.</t>
</section>

<section anchor="definition"><name>Header Field Definition</name>
<t>The header field definition remains the same as in
<xref target="RFC2156"></xref> and <xref target="RFC4021"></xref>.
It indicates the time at which a message loses its validity.
Using the ABNF <xref target="RFC5234" /> from <xref target="RFC5322" />, its syntax is:</t>

<sourcecode type="abnf"><![CDATA[
expires = "Expires:" date-time CRLF]]></sourcecode>

<t>Example:</t>
<t><tt>Expires: Wed, 3 Dec 2025 17:22:57 +0000</tt></t>
</section>

<section anchor="senders"><name>Advice to Message Creators</name>
<t>Message creators add the header field along with a relevant date and time when they know that the message loses
its validity.
This could apply to commercial newsletters that include time-limited offers, event announcements, social notifications,
and periodic announcement messages.</t>
<t>Message creators <bcp14>MUST NOT</bcp14> include more than one "Expires" header field in a message.</t>
</section>

<section anchor="receivers"><name>Advice to Message Readers</name>
<t>Message readers, such as mailbox providers, web mail, and MUAs
could de-emphasize the display of expired messages or not display them.
They could
allow users to control the actions to take for expired messages.</t>
<t>The information provided in the header field is intended to be used as
a signal to provide an improved
experience to the end user. For instance, systems might allow automatic
rules to clean up expired email from specific message creators or with
defined characteristics, or to provide a mode to quickly handle all
expired email.</t>
<t>Mail software <bcp14>MUST NOT</bcp14> discard or reject a message based
solely on the content of this header field, if present,
and <bcp14>SHOULD NOT</bcp14> delete messages bearing an "Expires" field with a date
and time in the past unless deliberately configured to do so by the
mailbox owner.</t>
</section>

<section anchor="interop"><name>Interoperability Considerations</name>
<t>As "Expires" has never been formally defined for Internet messages
other than those translated from X.400, there might have been
implementations that used this header field name in an incompatible way.
Though the authors have never seen such a message, there is a theoretical risk of confusion.</t>
</section>

<section anchor="security"><name>Security Considerations</name>
<t>A message creator can put any date in an "Expires" header field, including dates in the distant past or future.
Without further knowledge about the message creator, recipient systems and message readers cannot assume
that the contents of the header are accurate or benign.</t>
<t>For example, a malicious message creator might send spam mail that includes an expiry date in the past,
in the hope that recipients would not see or report the mail, and that adaptive spam filters
would use it as non-spam training material.
A creator might include a date in the immediate future in the hope that a recipient would
see and act on a message but could not find it later to complain about it.
Or, a creator might include a date in the distant future in the hope that the message
would stay in a recipient's inbox and would be more likely to be read.</t>
<t>While the header field can be useful for determining how to display a message to a user,
it is unlikely to be useful for determining whether the message is wanted or is fraudulent.</t>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>IANA has updated an existing entry in the <eref target="https://www.iana.org/assignments/message-headers">"Permanent Message Headers Field Names" registry</eref>.</t>

<dl spacing="normal" newline="false">
<dt>Header Field Name:</dt><dd>Expires</dd>
<dt>Protocol:</dt><dd>mail</dd>
<dt>Status:</dt><dd>standard</dd>
<dt>Author/Change Controller:</dt><dd>IETF</dd>
<dt>Trace:</dt><dd>no</dd>
<dt>Reference:</dt><dd>RFC 10080</dd>
</dl>
</section>

</middle>
<back>

<references><name>References</name>

<references><name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" />
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2156.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4021.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5322.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
</references>
<references><name>Informative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1327.xml" />
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5536.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5598.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.822.xml"/>

</references>

</references>

<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>This document was informed by discussions with and/or contributions from <contact fullname="Barry Leiba"/>, <contact fullname="Alexey Melnikov"/>, <contact fullname="Jonathan Loriaux"/>, <contact fullname="Charles Sauthier"/>, and <contact fullname="Simon Bressier"/>.</t>
</section>

</back>

</rfc>
