<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-ietf-sml-structured-email-06" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" consensus="true">

<front>
<title>Structured Email</title><seriesInfo value="draft-ietf-sml-structured-email-06" stream="IETF" status="standard" name="Internet-Draft"></seriesInfo>
<author initials="H.-J." surname="Happel" fullname="Hans-Joerg Happel"><organization>audriga GmbH</organization><address><postal><street></street>
</postal><email>happel@audriga.com</email>
<uri>https://www.audriga.com</uri>
</address></author><date/>
<area>ART</area>
<workgroup>SML</workgroup>

<abstract>
<t>This document specifies how a machine-readable variant of its content can be added to email messages.</t>
</abstract>

</front>

<middle>

<section anchor="introduction"><name>Introduction</name>
<t>Information on websites and in email messages mostly targets human readers. However, various attempts have been made to make such information <u format="char-num">–</u> fully or in part <u format="char-num">–</u> machine-readable, so that tools can assist users in dealing with that information more efficiently.</t>
<t>One widespread approach is the usage of <xref target="SchemaOrg"></xref> vocabulary, which can be embedded in the HTML markup of websites. Tools such as web search engines may crawl this information and use it for improving the quality of search result snippets (e.g., by showing ratings, opening hours, or contact information).</t>
<t>Similarly, some web shops, hotels, and airlines include Schema.org vocabulary in their order receipt email messages sent to customers. This information is extracted and used by some ISPs and open source tools (<xref target="SchemaOrgEmail"></xref>).</t>
<t>However, these implementations differ in many details. The goal of this specification is to provide a clear and comprehensive specification for this practice and to provide ground for potential future extensions.</t>
</section>

<section anchor="conventions-used-in-this-document"><name>Conventions Used in This Document</name>
<t>The terms &quot;message&quot; and &quot;email message&quot; refer to &quot;electronic mail messages&quot; or &quot;emails&quot; as specified in <xref target="RFC5322"></xref>. The term &quot;Message User Agent&quot; (MUA) denotes an email client application as per <xref target="RFC5598"></xref>.</t>
<t>The terms &quot;machine-readable data&quot; and &quot;structured data&quot; are used in contrast to &quot;human-readable&quot; messages and denote information expressed &quot;in a structured format (..) which can be consumed by another program using consistent processing logic&quot; <xref target="MachineReadable"></xref>.</t>
<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and only when, they appear in all capitals, as shown here.</t>
</section>

<section anchor="representing-structured-data"><name>Representing structured data</name>
<t>In order to exchange structured data, one needs to choose a formal language and a serialization format. Based on this, vocabularies can be used to establish a shared understanding of structured data among different parties, such as email senders and receivers.</t>

<section anchor="knowledge-representation-language"><name>Knowledge representation language</name>
<t>The Resource Description Framework (<xref target="RDF"></xref>) is a  formal language for knowledge representation standardized by the W3C. It is underlying <xref target="SchemaOrg"></xref> and thus already used for annotating websites and emails.</t>
<t>Among the various serializations for RDF, JSON-LD (<xref target="JSONLD"></xref>) has become the most commonly used serialization used on websites (<xref target="WDCStats"></xref>).</t>
<t>Hence, structured data in email messages <bcp14>SHOULD</bcp14> be expressed in the JSON-LD serialization of RDF.</t>

<artwork>For discussion, see also:
https://github.com/hhappel/draft-happel-structured-email/issues/1
</artwork>
</section>

<section anchor="vocabularies"><name>Vocabularies</name>
<t>Using RDF/JSON-LD, users are free to express any kind of information in structured data. For reuse and reference however, it is common to agree upon core concepts/entities and properties for a certain domain. Those are typically collected and shared in so-called vocabularies.</t>
<t><xref target="SchemaOrg"></xref> is a widespread vocabulary, which was initially designed by search engine vendors for annotating content on websites. A small subset of its concepts is already used by email senders and processed by email providers.</t>
<t>Users that want to add structured data into email message <bcp14>SHOULD</bcp14> use concepts from <xref target="SchemaOrg"></xref>, if they fit their use case. They <bcp14>MAY</bcp14> however use any valid JSON-LD.</t>
<t>There might also be certain vocabularies for email-specific use cases (such as [I-D.ietf-sml-structured-vacation-notices-01]), that will be specifically endorsed by the IETF or by respective RFCs.</t>
<t>MUAs may choose freely (in consent with its users) if and how to use structured data extracted from messages. If they do not explicitly support a certain vocabulary, MUAs may also rely on extensions or passing data to outside applications, similar to the case of &quot;email attachments&quot; (i.e., MIME body parts with content-disposition type <tt>attachment</tt> <xref target="RFC2183"></xref>).</t>

<artwork>For discussion, see also:
https://github.com/hhappel/draft-happel-structured-email/issues/2
</artwork>
</section>
</section>

<section anchor="structured-data-in-email-messages"><name>Structured data in email messages</name>
<t>This section defines aspects of adding structured data to a MIME message and its interrelation with other body parts.</t>
<t>As a basic distinction, we define two types of messages:</t>

<ul spacing="compact">
<li>Machine-readable messages (MRM), for which their content is entirely machine-readable</li>
<li>Partly machine-readable messages (PMRM), for which their content is NOT entirely machine-readable (e.g., only describing some of the human-readable content)</li>
</ul>

<section anchor="content-types"><name>Content-types</name>
<t>Structured data <bcp14>MUST</bcp14> be added to a MIME message as an <tt>application/ld+json</tt> body part, which is meant to provide a machine-readable description of the human-readable content of a message part. Alternatively, senders can use a content-type from which <tt>application/ld+json</tt> can be easily derived, such as <tt>application/jose</tt> (<xref target="RFC7515"></xref>).</t>
<t>For backwards-compatibility, MUAs <bcp14>MAY</bcp14> choose to consider parsing machine-readable content from <tt>text/html</tt> body parts, as used by some legacy structured email senders (<xref target="SchemaOrgEmail"></xref>). Structured data can be embedded as JSON-LD <em>or</em> Microdata (<xref target="Microdata"></xref>) in those emails. MUAs are free to parse either syntax. However, MUA and other senders <bcp14>MUST NOT</bcp14> use one of these legacy formats when <em>sending</em> structured email.</t>
</section>

<section anchor="designation"><name>Designation</name>
<t>This document targets structured data describing the content of an email message itself or complementary structured data to inform the MUA (see &quot;non-representation&quot; case below).</t>
<t>This is opposed to structured data which is merely added to an email message as a regular MIME body part for other purposes (i.e., as a normal file attachment).</t>
<t>To distinguish these two cases, senders <bcp14>MUST</bcp14> set a header field <tt>Content-Purpose</tt> to the value <tt>Machine-readable</tt> on a body part, which is meant to provide machine-readable content. A MUA <bcp14>SHOULD NOT</bcp14> show such body parts as a file attachment in the list of email attachments.</t>
</section>

<section anchor="placement"><name>Placement</name>
<t>When aiming to describe human-readable content in a machine-readable way, there may exist three general relations between both types of content. In these three cases, the machine-readable version of the content is either:</t>

<ul spacing="compact">
<li>fully representative of the human-readable content (&quot;Full representation&quot;)</li>
<li>describing only parts of the human-readable content (&quot;Partial representation&quot;)</li>
<li>describing none of the human-readable content (&quot;Non-representation&quot;)</li>
</ul>
<t>Those distinctions matter for MUAs, as they can make choices for the autoprocessing or presentation of messages and their body parts.</t>

<artwork>For discussion, see also:
https://github.com/hhappel/draft-happel-structured-email/issues/3
</artwork>

<section anchor="full-representation"><name>Full representation</name>
<t>Full representation denotes the case, in which structured data describes the content of a certain body part in the sense of an &quot;<em>alternative</em> version of the same information&quot; as in the informal definition of <tt>multipart-alternative</tt> in <xref target="RFC2046"></xref>.</t>
<t>If a message is sent to a human recipient, a sender <bcp14>MUST</bcp14> use a <tt>multipart/alternative</tt> for each body part that is <em>fully</em> described by structured data. In this case, the <tt>multipart/alternative</tt> should contain a <tt>text/plain</tt> and a <tt>text/html</tt> version of the content for backwards compatibility, plus the <tt>application/ld+json</tt> body part containing the structured data representation.</t>
<t>If the MIME tree of a message consists entirely of body parts which have a &quot;full representation&quot; machine-readable alternative of their content, this is called a &quot;machine-readable message&quot; (MRM). A MRM may be suitable for special forms of automated processing, since it contains no information for which interpretation of a human reader is required.</t>
<t>While it may be tricky to derive if a message is a MRM in case of complex MIME trees, the majority of messages in practice will contain just one <tt>multipart/alternative</tt> body part, for which such conclusion is easy to derive.</t>
<t>If a MUA is able to process the vocabulary of a MRM or is able to process the structured data otherwise, it <bcp14>SHOULD</bcp14> prefer the <tt>application/ld+json</tt> representation, unless instructed otherwise by the user. In case of more complex MIME structures, it is up to the discretion of the MUA how to process or render the message.</t>
<t>If a sender intends to send a MRM, the <em>subject</em> of a message <bcp14>MUST NOT</bcp14> contain any additional information which is not contained in the machine-readable parts of the message. This is to ensure that MRM may be processed fully automatically if desired.</t>
<t>Some countries require senders to include legal disclaimers in email messages. In the case of &quot;full representation&quot;, a sender <bcp14>MAY</bcp14> include a &quot;structured email signature&quot; as shown in the Appendix either in the &quot;full representation&quot; structure data or in an additional &quot;non-representation&quot; body part.</t>
<t>If a message is sent to a definitely non-human recipient (e.g., an API), human-readable content <bcp14>MAY</bcp14> be omitted from the message entirely and <tt>application/ld+json</tt> <bcp14>MAY</bcp14> be used as <tt>Content-Type</tt> in the message header.</t>
</section>

<section anchor="partial-representation"><name>Partial representation</name>
<t>If structured data is intended to describe only a <em>subset</em> of a certain human-readable body part, it <bcp14>MUST</bcp14> be added as a <tt>multipart/related</tt> entity.</t>
<t>This <tt>multipart/related</tt> entity <bcp14>MUST</bcp14> also contain the human textual content of the body part (e.g., <tt>text/plain</tt> and <tt>text/html</tt>). Also, any MIME body part referenced from the structured data in the structured data body part <bcp14>MUST</bcp14> be enclosed in this <tt>multipart/related</tt> entity.</t>
<t>MUAs <bcp14>SHOULD</bcp14> render such messages as if no structured data body part would be included. MUAs <bcp14>MAY</bcp14> process the structured data for providing an enhanced user experience of their resp. the user's choice.</t>
</section>

<section anchor="non-representation"><name>Non-representation</name>
<t>In the case of non-representation, there is no overlap between structured data and the human readable content.</t>
<t>This may be useful for special scenarios, such as embedding &quot;preemptive&quot; structured vacation notices as described in [I-D.happel-sml-structured-vacation-notices-00] into email messages.</t>
<t>As in the case of partial representation, MUAs receiving such messages may take according action based on the structured data extracted.</t>
</section>
</section>

<section anchor="identifiers"><name>Identifiers</name>
<t>There are existing use cases for cross-referencing between different parts of a MIME message, embedded images probably being the most widespread one. For this purpose, <xref target="RFC2392"></xref> defines the <tt>cid:</tt> and <tt>mid:</tt> URI schemes.</t>
<t>In a similar fashion, cross-referencing might occur between structured data and other message parts.</t>

<section anchor="using-identifiers-in-structured-data"><name>Using identifiers in structured data</name>
<t>Most nodes and properties in JSON-LD are identified using IRIs <xref target="RFC3987"></xref>. Since any <xref target="RFC2392"></xref> (<tt>cid:</tt>/<tt>mid:</tt>) reference forms a valid IRI, those references can be directly used in JSON-LD.</t>
<t>There are two main cases for which <tt>cid:</tt>-identifiers <bcp14>SHOULD</bcp14> be used in structured data.</t>
<t>First, if structured data references binary content such as images or other files, which already exist as MIME body parts within the same message.</t>
<t>Second, if a <tt>cid:</tt> value is used in a JSON-LD <tt>@id</tt> property, the corresponding JSON-LD node can be considered to describe the MIME body part identified by that <tt>cid:</tt>. This <bcp14>MAY</bcp14> be used to denote that certain structured data is explicitly describing that MIME body part, such as an image. This particularly <bcp14>MUST NOT</bcp14> be used for the main <tt>text/plain</tt> or <tt>text/html</tt> body parts, though.</t>

<artwork>For discussion, see also:
https://github.com/hhappel/draft-happel-structured-email/issues/4
</artwork>
</section>

<section anchor="using-structured-data-identifiers-in-text-html"><name>Using structured data identifiers in text/html</name>
<t>In the case of &quot;partial representation&quot;, a MUA should still primarily display the human readable part of a message (e.g., <tt>text/plain</tt> or <tt>text/html</tt>).</t>
<t>It might however be helpful if the MUA is able to determine which parts of human readable text refer to certain structured data - e.g., to offer actions based on structured data directly in the context of the corresponding human-readable content.</t>
<t>For this purpose, the sender may add a HTML &quot;data-id&quot; property (<xref target="HTMLData"></xref>) to any HTML entity in the <tt>text/html</tt> body, which references the <tt>@id</tt> property of a JSON-LD node in the structured data.</t>
<t>Besides referencing the corresponding JSON-LD node, a sender might also want to denote if the underlying data is &quot;extensively described&quot; or just &quot;mentioned&quot; in the human readable representation. For example, the New York Times cooking newsletter typically
<em>features</em> few recipes, while <em>mentioning</em> a larger number of further recipes, also referencing their web URL.</t>
<t>For providing an adequate user experience, the MUA should be able to understand which recipes are featured in an email and which are just mentioned.</t>

<artwork>For discussion, see also:
https://github.com/hhappel/draft-happel-structured-email/issues/5
</artwork>
</section>
</section>
</section>

<section anchor="structured-data-across-email-messages"><name>Structured data across email messages</name>
<t>This sections deals with aspects that go beyond the scope of an individual MIME message.</t>

<section anchor="forwarding"><name>Forwarding</name>
<t>Forwarding messages including structured data needs to be considered from a privacy perspective, particularly in cases of &quot;non-representation&quot;, when the user has no way to determine structured data from the human readable part of the message.</t>
<t>A MUA <bcp14>MUST</bcp14> strip non-representative structured data when a user is forwarding messages to somebody else in her MUA. Note that this does not apply to automated forwarding of messages.</t>
<t>Beyond that, privacy issues also apply to forwarding regular email messages. Improvements of the status quo might hence be considered beyond the specific context of structured email.</t>

<artwork>For discussion, see also:
https://github.com/hhappel/draft-happel-structured-email/issues/6
</artwork>
</section>

<section anchor="replies"><name>Replies</name>
<t>Users or agents might want to reply to structured emails with a structured email. Details for this will be specified in a separate future specification.</t>
</section>

<section anchor="updates"><name>Updates</name>
<t>In human-readable messages, human language can be used to update or recall information that was conveyed in prior messages. Accordingly, there needs to be a machine-readable mechanism that allows to express the update or recall of structured data.</t>
<t>To update or recall structured data, senders <bcp14>MUST</bcp14> set the <tt>SUPERSEDES</tt> header field (<xref target="RFC4021"></xref>) of the &quot;update&quot; message with the <tt>message id</tt> of the original email message. An &quot;update&quot; message with empty structured data can be used to signal a full recall of previously sent structured data. Every &quot;update&quot; message <bcp14>MUST</bcp14> have its own unique <tt>message id</tt>.</t>
<t>The processing of an &quot;update&quot; message by the receiving MUA is up to its own discretion, as meaningful action may depend an multiple factors.</t>
<t>MUAs <bcp14>MAY</bcp14> consider:</t>

<ul spacing="compact">
<li>An update might be triggered by a previous action of the user (e.g., canceling a reservation)</li>
<li>Adding the original <tt>message id</tt> as an <tt>identifier</tt> property to capture its origin when persisting structured data</li>
</ul>

<artwork>For discussion, see also:
https://github.com/hhappel/draft-happel-structured-email/issues/9
</artwork>
</section>
</section>

<section anchor="message-flags"><name>Message flags</name>
<t>In some use cases, MUAs might benefit from information about message details without having to evaluate the full message body.</t>
<t>For example, the <tt>$hasAttachment</tt> IMAP flag (<xref target="HasAttachment"></xref>) was proposed to signal the existence of MIME attachments in a message which otherwise would need to be redetermined based on complex MIME parsing.</t>
<t>In case of structured data, the receiving MTA (or any later MUA) <bcp14>MAY</bcp14> determine two facts when parsing the MIME tree of a message:</t>

<ul spacing="compact">
<li>If the message contains any structured data according to this document</li>
<li>If so, if the message is a fully machine-readable message (MRM)</li>
</ul>
<t>Accordingly, the following IMAP flags MAY be set for a message:</t>

<ul spacing="compact">
<li><tt>$hasStructuredData</tt> (in the first case)</li>
<li><tt>$MRM</tt> (in the second case)</li>
</ul>
<t>The first case may be helpful for filtering or client-side preloading of message content. The second case may be particularly helpful for automated processing without user interaction.</t>

<artwork>For discussion, see also:
https://github.com/hhappel/draft-happel-structured-email/issues/10
</artwork>
</section>

<section anchor="examples"><name>Examples</name>
<t>The following section shows some example MIME hierarchies of email messages containing structured data.</t>

<section anchor="full-representation-1"><name>Full representation</name>

<artwork>multpart/alternative/
├─ text/plain
├─ text/html
└─ application/ld+json
</artwork>
</section>

<section anchor="full-representation-machine-readable-only"><name>Full representation (machine-readable only)</name>

<artwork>application/ld+json
</artwork>
</section>

<section anchor="full-representation-with-inline-image"><name>Full representation with inline image</name>

<artwork>multpart/alternative/
├─ text/plain
└─ multipart/related/
   ├─ multpart/alternative/
   │    ├─ text/html
   │    ├─ application/ld+json
   └─ image/png
</artwork>
</section>

<section anchor="partial-representation-1"><name>Partial representation</name>

<artwork>multpart/related/
├─ multipart/alternative/
│  ├─ text/plain
│  └─ text/html
└─ application/ld+json
</artwork>
</section>

<section anchor="non-representation-1"><name>Non-representation</name>

<artwork>multpart/mixed/
├─ multipart/alternative/
│  ├─ text/plain
│  └─ text/html
└─ application/ld+json
</artwork>
</section>
</section>

<section anchor="appendix-structured-email-signature"><name>Appendix (Structured Email Signature)</name>
<t>The following snippet of structured data uses the Schema.org <tt>publisher</tt> property of an <tt>EmailMessage</tt>.</t>

<sourcecode type="json">{
  &quot;@context&quot;: &quot;https://schema.org/&quot;,
  &quot;@type&quot;: &quot;EmailMessage&quot;,
  &quot;publisher&quot;: {
    &quot;@type&quot;: &quot;Organization&quot;,
    &quot;legalName&quot;: &quot;MUSEO NACIONAL DEL PRADO DIFUSIÓN, S.A.U., S.M.E.&quot;,
    &quot;legalAddress&quot;: {
    &quot;@type&quot;: &quot;PostalAddress&quot;,
    	&quot;addressLocality&quot;: &quot;Madrid, Spain&quot;,
    	&quot;postalCode&quot;: &quot;28014&quot;,
    	&quot;streetAddress&quot;: &quot;Casado del Alisal, 10, bajo B&quot;
  	},
	 &quot;legalRepresentative&quot; : {
  			&quot;@context&quot;: &quot;https://schema.org&quot;,
  			&quot;@type&quot;: &quot;Person&quot;,
		    &quot;name&quot;: &quot;Jane Doe&quot;,
	 },
	 &quot;identifier&quot;: {
	 	 &quot;@type&quot;: &quot;PropertyValue&quot;,
	  	&quot;name&quot;: &quot;Registration data in the Company Register&quot;,
	 	 &quot;value&quot;: &quot;Volume 23578, Entry 1, Section 8, Sheet M-423094, 74 Folio 74&quot;
      },
      &quot;vatID&quot;: &quot;A84888056&quot;
   } 
}
</sourcecode>
</section>

<section anchor="security-and-trust"><name>Security and trust</name>
<t>Email user agents that want to support structured email should follow guidance to ensure trust and security standards. These will be elaborated in a separate specification (see [I-D.draft-happel-structured-email-trust-04]).</t>
</section>

<section anchor="implementation-status"><name>Implementation status</name>
<t>&lt; RFC Editor: before publication please remove this section and the reference to <xref target="RFC7942"></xref> &gt;</t>
<t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="RFC7942"></xref>. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist.</t>
<t>According to <xref target="RFC7942"></xref>, &quot;this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit&quot;.</t>

<section anchor="structured-email-for-nextcloud-mail"><name>Structured Email for Nextcloud Mail</name>
<t>Nextcloud Mail is an open source Webmail app which includes a subset of structured email support since 2020 <xref target="NC-Itinerary"></xref>.</t>
<t>In recent months, code has evolved to support structured email in a more general fashion <xref target="NC-SML"></xref>.</t>
</section>

<section anchor="structured-email-plugin-for-roundcube-webmail"><name>Structured Email plugin for Roundcube Webmail</name>
<t>An open source plugin for the Roundcube Webmail software is developed to serve as an example implementation for this specification (<xref target="RC-SML"></xref>).</t>
<t>Beyond that, some ISPs and open source tools provide implementation partly compliant with this specficiation (<xref target="SchemaOrgEmail"></xref>).</t>
</section>

<section anchor="yatagarasu-mail"><name>Yatagarasu Mail</name>
<t><xref target="Yatagarasu"></xref> Mail is a fork of the open source Thunderbird Mobile client for Android. It adds structured email support for both reading and sending messages.</t>
</section>
</section>

<section anchor="security-considerations"><name>Security considerations</name>
<t>See section &quot;security and trust&quot;.</t>
</section>

<section anchor="privacy-considerations"><name>Privacy considerations</name>
<t>See section &quot;security and trust&quot;.</t>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="creation-of-the-sml-registry-group"><name>Creation of the SML registry group</name>
<t>IANA will create a new registry group called &quot;Structured Email (SML)&quot;. This group includes the &quot;SML Email Vocabulary Registry&quot; and &quot;SML Vocabularies&quot; registries described below.</t>

<section anchor="creation-of-the-sml-email-vocabulary-registry"><name>Creation of the SML Email Vocabulary Registry</name>
<t>IANA will create the following registry:</t>
<t>Registry Name: &quot;SML IETF Email Vocabulary&quot;</t>
<t>Registration Procedure: TBD</t>
</section>

<section anchor="creation-of-the-sml-vocabularies-registry"><name>Creation of the SML Vocabularies Registry</name>
<t>IANA will create the following registry:</t>
<t>Registry Name: &quot;SML Vocabularies&quot;</t>
<t>Registration Procedure: TBD</t>
<t>(TABLE OF REGISTRATIONS)</t>
<t>The registry entries contain the following fields:
- Vocabulary name: a human readable name for reference
- Namespace: the URI namespace prefix for the vocabulary
- Documentation page: a web page with further documentation about the vocbulary
- Scope: the domain described by that vocabulary
- Reference: (IANA)
- Notes: any additional notes</t>
</section>

<section anchor="initial-entries-for-the-sml-vocabularies-registry"><name>Initial Entries for the SML Vocabularies Registry</name>
<t>The registry initially contains these entries:</t>
<table>
<thead>
<tr>
<th>Vocabulary name</th>
<th>Namespace</th>
<th>Documentation page</th>
<th>Scope</th>
<th>Reference</th>
<th>Notes</th>
</tr>
</thead>

<tbody>
<tr>
<td>Schema.org</td>
<td><eref target="https://schema.org/">https://schema.org/</eref></td>
<td><eref target="https://schema.org/">https://schema.org/</eref></td>
<td>General purpose concepts</td>
<td></td>
<td></td>
</tr>

<tr>
<td>SML Email Vocabulary</td>
<td>TBD</td>
<td>TBD</td>
<td>Email-specific concepts defined in IETF drafts</td>
<td>(this draft)</td>
<td></td>
</tr>
</tbody>
</table></section>
</section>

<section anchor="registration-of-the-content-purpose-mime-header-field"><name>Registration of the Content-Purpose MIME header field</name>
<t>The following MIME header field is registered in the Message Headers registry, as established in <xref target="RFC3864"></xref>/BCP 90.</t>
<t><strong>Header Field:</strong> Content-Purpose</t>
<t><strong>Description:</strong> If the MIME entity is intended as machine-readable information for the MUA.</t>
<t><strong>Applicable protocol:</strong> MIME <xref target="RFC2045"></xref></t>
<t><strong>Status:</strong> standards-track</t>
<t><strong>Author/change controller:</strong> IETF</t>
<t><strong>Specification document(s):</strong> This document</t>
<t><strong>Related information:</strong></t>
</section>

<section anchor="registration-of-the-hasstructureddata-keyword"><name>Registration of the $hasStructuredData keyword</name>
<t>The following IMAP/JMAP keyword is registered in the IMAP and JMAP Keywords registry, as established in <xref target="RFC5788"></xref>.</t>
<t><strong>IMAP/JMAP keyword name:</strong> $hasStructuredData</t>
<t><strong>Purpose</strong> Indicate to the client that a message contains structured data according to this spec.</t>
<t><strong>Private or Shared on a server:</strong> SHARED</t>
<t><strong>Is it an advisory keyword or may it cause an automatic action:</strong> This keyword can cause an automatic action.</t>
<t><strong>When/by whom the keyword is set/cleared:</strong> This keyword is set by the server on delivery.</t>
<t><strong>Related keywords:</strong> <tt>MRM; </tt>hasAttachments is peripherally related</t>
<t><strong>Related IMAP capabilities:</strong> None</t>
<t><strong>Security considerations:</strong> None</t>
<t><strong>Published specification:</strong> This document</t>
<t><strong>Intended usage:</strong> COMMON</t>
<t><strong>Scope:</strong> BOTH</t>
<t><strong>Owner/Change controller:</strong> IESG</t>
</section>

<section anchor="registration-of-the-mrm-keyword"><name>Registration of the $MRM keyword</name>
<t>The following IMAP/JMAP keyword is registered in the IMAP and JMAP Keywords registry, as established in <xref target="RFC5788"></xref>.</t>
<t><strong>IMAP/JMAP keyword name:</strong> $MRM</t>
<t><strong>Purpose</strong> Indicate to the client that a message is fully machine-readable according to this specficiation.</t>
<t><strong>Private or Shared on a server:</strong> SHARED</t>
<t><strong>Is it an advisory keyword or may it cause an automatic action:</strong> This keyword can cause an automatic action.</t>
<t><strong>When/by whom the keyword is set/cleared:</strong> This keyword is set by the server on delivery.</t>
<t><strong>Related keywords:</strong> any message with <tt>MRM should have also set the </tt>hasStructuredData keyword</t>
<t><strong>Related IMAP capabilities:</strong> None</t>
<t><strong>Security considerations:</strong> None</t>
<t><strong>Published specification:</strong> This document</t>
<t><strong>Intended usage:</strong> COMMON</t>
<t><strong>Scope:</strong> BOTH</t>
<t><strong>Owner/Change controller:</strong> IESG</t>
</section>
</section>

</middle>

<back>
<references><name>Informative References</name>
<reference anchor="HTMLData" target="https://html.spec.whatwg.org/multipage/dom.html#attr-data-*">
  <front>
    <title>HTML Living Standard: Embedding custom non-visible data with the data-* attributes</title>
    <author>
      <organization>WHATWG</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="HasAttachment" target="https://mailarchive.ietf.org/arch/msg/imapext/MVE5eNHOaNIVGUvN1RKtBL8b278/">
  <front>
    <title>Registering $hasAttachment &amp; $hasNoAttachment</title>
    <author>
      <organization>IETF imapext WG mailing list</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="JSONLD" target="https://www.w3.org/TR/json-ld/">
  <front>
    <title>JSON-LD 1.1</title>
    <author>
      <organization>W3C JSON-LD Working Group</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="MachineReadable" target="https://csrc.nist.gov/glossary/term/Machine_Readable">
  <front>
    <title>NIST IR 7511 Rev. 4</title>
    <author>
      <organization>NIST</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="Microdata" target="https://html.spec.whatwg.org/multipage/#toc-microdata">
  <front>
    <title>HTML Living Standard: Microdata</title>
    <author>
      <organization>Web Hypertext Application Technology Working Group (WHATWG)</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="NC-Itinerary" target="https://github.com/nextcloud/mail/pull/2214">
  <front>
    <title>Nextcloud Mail: Itinerary support</title>
    <author>
      <organization>Nextcloud GmbH</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="NC-SML" target="https://github.com/audriga/nextcloud-mail/tree/enh/sml-markup-rendering">
  <front>
    <title>Nextcloud Mail: SML support</title>
    <author>
      <organization>audriga GmbH</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="RC-SML" target="https://github.com/audriga/roundcube-structured-email/">
  <front>
    <title>Structured Email plugin for Roundcube Webmail</title>
    <author>
      <organization>audriga GmbH</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="RDF" target="https://www.w3.org/TR/rdf11-concepts/">
  <front>
    <title>RDF 1.1 Concepts and Abstract Syntax</title>
    <author>
      <organization>W3C RDF Working Group)</organization>
    </author>
    <date></date>
  </front>
</reference>
<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.2046.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.2183.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2392.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3864.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3987.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4021.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.5598.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5788.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<reference anchor="SchemaOrg" target="https://schema.org/">
  <front>
    <title>Schema.org</title>
    <author>
      <organization>W3C Schema.org Community Group</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="SchemaOrgEmail" target="https://structured.email/content/related_work/frameworks/schema_org_for_email.html">
  <front>
    <title>Schema.org for email</title>
    <author>
      <organization>Structured Email</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="WDCStats" target="http://webdatacommons.org/structureddata/#toc3">
  <front>
    <title>Web Data Commons - Microdata, RDFa, JSON-LD, and Microformat Data Sets</title>
    <author>
      <organization>Web Data Commons Project</organization>
    </author>
    <date></date>
  </front>
</reference>
<reference anchor="Yatagarasu" target="https://github.com/audriga/thunderbird-android">
  <front>
    <title>Yatagarasu Mail</title>
    <author>
      <organization>audriga GmbH</organization>
    </author>
    <date></date>
  </front>
</reference>
</references>

</back>

</rfc>
