Return-Path: <ptao@apple.com>
X-Original-To: sml@mail2.ietf.org
Delivered-To: sml@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1])
	by mail2.ietf.org (Postfix) with ESMTP id 7B3B9135A83A9
	for <sml@mail2.ietf.org>; Fri,  4 Sep 2026 10:12:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1;
	t=1788541972; bh=3KPbty49NBBp1MynZBP/iARo1/iyHqXDTXzOYyRtd1U=;
	h=From:Subject:Date:To;
	b=Jm8hdCmOe3yJhTzKYtYwCFcEd/iygk3H8dT5g/n1IGwtiWK1K3T8J3WIt4Sq3Av8t
	 YzMnYrH9yfnddmIEqUbmnbj2DbX+5CjWsGgeEEXvxec0LbzREXRR2Obk3KC0cHFVIJ
	 MVRPVZrEaC1TbVZem2KIUeE7Snky0R5+kkNaak9o=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.795
X-Spam-Level: 
X-Spam-Status: No, score=-2.795 tagged_above=-999 required=5
	tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1,
	DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
	HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001,
	RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
	RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_NONE=0.001]
	autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key)
	header.d=apple.com
Received: from mail2.ietf.org ([166.84.6.31])
	by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id vx43v9OiHGnX for <sml@mail2.ietf.org>;
	Fri,  4 Sep 2026 10:12:51 -0700 (PDT)
Received: from vib-mx02.apple.com (vib-mx02.apple.com [17.132.96.1])
	(using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256)
	(No client certificate requested)
	by mail2.ietf.org (Postfix) with ESMTPS id AFBBA135A83A2
	for <sml@ietf.org>; Fri,  4 Sep 2026 10:12:51 -0700 (PDT)
Received: from am11p01nt-mtap02.apple.com
 (am11p01nt-mtap02.ise.apple.com [100.85.69.166]) by vb11p01nt-mxp02.apple.com
 (Oracle Communications Messaging Server 8.1.0.28.20250821 64bit (built Aug 21
 2025)) with ESMTPS id <0TKU0BILFNT9SR10@vb11p01nt-mxp02.apple.com> for
 sml@ietf.org; Fri, 04 Sep 2026 17:12:45 +0000 (GMT)
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-09-04_04,2026-09-03_01,2025-10-01_01
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com;
 h=content-type : date : from : message-id : mime-version : subject : to;
 s=20180706; bh=VAMwfz/i48rgcVkt8jP/Vss7jy6e28t6P8bIQ2Jz+Vc=;
 b=lcREgL67J+PCNwxdGAjuartj6HAWdWOsBjF2ga2V2rV9PinGu2TH5WNWtqDibpr7/W0h
 6Q+FlSHs0WrHDu7GFH7UveO/D8NQi3NqIfhD/3hpsHDXeB8LdCUhYG0RIcXnQN7FVteb
 rk5qaxYKKtiC/bK2zi5kQI7AOSU+nVMcvonySXrmJou+aITXpxfMptKh2tc4zhRW4OvG
 Vo1cEJgerXeEdnuqJvLLLJyUrvO4snpY16yn1/ruXcsUhjK+gtL3ChM0g5ZN25BdYH8N
 W4yYFPfuPEI2JM9maDx+ed7EvZQ7ByHPUmYAPXvmVnq7QFUthzOowaq6bhtjnYi7gi0M +A==
Received: from am11p01nt-mmpp04.apple.com
 (am11p01nt-mmpp04.ise.apple.com [100.85.69.165]) by
 am11p01nt-mtap02.apple.com
 (Oracle Communications Messaging Server 8.1.0.28.20250821 64bit (built Aug 21
 2025)) with ESMTPS id <0TKU1QDEHNT9DY00@am11p01nt-mtap02.apple.com> for
 sml@ietf.org; Fri, 04 Sep 2026 17:12:45 +0000 (GMT)
Received: from process_milters-daemon.am11p01nt-mmpp04.apple.com by
 am11p01nt-mmpp04.apple.com
 (Oracle Communications Messaging Server 8.1.0.28.20260513 64bit (built May 13
 2026)) id <0TKU19800NDCFL00@am11p01nt-mmpp04.apple.com> for sml@ietf.org;
 Fri,
 04 Sep 2026 17:12:45 +0000 (GMT)
X-Va-A: 
X-Va-T-CD: 15e386259ac900ea8a8f83e61537a384
X-Va-E-CD: c3b302c5b2ee732c8ad720504bc188a7
X-Va-R-CD: 4011d842413c2c3095b8df5418f8497b
X-Va-ID: a1029656-b252-4347-ab33-ef4da325db5a
X-Va-CD: 0
X-V-A: 
X-V-T-CD: 15e386259ac900ea8a8f83e61537a384
X-V-E-CD: c3b302c5b2ee732c8ad720504bc188a7
X-V-R-CD: 4011d842413c2c3095b8df5418f8497b
X-V-ID: 40b404a0-26e6-4a4e-8dc4-b10410b88c43
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-09-04_04,2026-09-03_01,2025-10-01_01
Received: from smtpclient.apple (unknown [10.106.49.60])
 by am11p01nt-mmpp04.apple.com
 (Oracle Communications Messaging Server 8.1.0.28.20260513 64bit (built May 13
 2026)) with ESMTPSA id <0TKU1973FNT6UD00@am11p01nt-mmpp04.apple.com> for
 sml@ietf.org; Fri, 04 Sep 2026 17:12:45 +0000 (GMT)
From: Phillip Tao <ptao@apple.com>
Content-type: multipart/alternative;
 boundary="Apple-Mail=_3CE72728-B99B-4490-A43A-CCB5030659EB"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3901.200.12\))
Message-id: <7CAB2414-6D44-4987-839B-87AA5EEA8CF4@apple.com>
Date: Fri, 04 Sep 2026 19:12:42 +0200
To: sml@ietf.org
X-Mailer: Apple Mail (2.3901.200.12)
Message-ID-Hash: M6FCDWH2D5K3GOKB72QCXSRM57FMKIRA
X-Message-ID-Hash: M6FCDWH2D5K3GOKB72QCXSRM57FMKIRA
X-MailFrom: ptao@apple.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency;
 loop; banned-address; member-moderation; nonmember-moderation; administrivia;
 implicit-dest; max-recipients; max-size; news-moderation; no-subject;
 digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: =?utf-8?q?=5BSml=5D_Proposal=3A_define_a_new_Structured-Email_header_field?=
List-Id: Structured Email <sml.ietf.org>
Archived-At: 
 <https://mailarchive.ietf.org/arch/msg/sml/PB84hCEaPCMJkv2JJKzga3lSWn8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sml>
List-Help: <mailto:sml-request@ietf.org?subject=help>
List-Owner: <mailto:sml-owner@ietf.org>
List-Post: <mailto:sml@ietf.org>
List-Subscribe: <mailto:sml-join@ietf.org>
List-Unsubscribe: <mailto:sml-leave@ietf.org>


--Apple-Mail=_3CE72728-B99B-4490-A43A-CCB5030659EB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi all,

I would like to propose that a new header field be defined in the core =
draft. The reason is that MUAs may want to be able to make choices about =
how and when to download a given message, based on the presence of =
structured data inside the message.

Proposed format:

    Structured-Email: representation=3Dmachine-readable; =
content=3Dvacation-notice;

The body of the header would be a tag-value list as defined by DKIM, =
with two tags: representation and content.

The "representation" tag can have four values: "machine-readable", =
"full", "partial", or "non".

These map to the types of representation defined in the core doc. In my =
reading of the core draft, machine-readable messages are strictly a =
subset of "full representation", while non-machine-readable messages may =
be any of the three representation types. Therefore, I've chosen to =
collapse "machine-readable" into one of the four representation types =
here, rather than express that as a separate tag. Note that "non" =
specifies the "non-representation" case, not the absence of structured =
data.

The "content" tag would be a comma-separated list of values identifying =
the type of structured content in the message. A new IANA registry would =
be created to register these types.

I would propose that the header with at least a representation tag be =
required, while the content tag would be optional.

FAQ

Q: Why do we need this in addition to the message flags defined in =
section 6 of the core draft?
A: Two main reasons:
    1. The IMAP flags rely on mailbox provider implementation. For a MUA =
designed to interoperate with a variety of MBPs, a reliable signal is =
needed for whether a message has structured content or not. Because the =
sender is the one attaching the structured data, they're the natural =
party to also attach metadata about the presence of the structured data.
    2. The currently defined flags do not convey the type of structured =
data carried in the message. This is important because the MUA may not =
understand all possible structured data that can be in an email message, =
and may only care about certain types. Even among the types that it does =
care about, the representation type and content type may inform when and =
how it wants to download the message.
    For example, for a machine-readable one-time-code, a MUA might want =
to download it immediately, even when it would otherwise hold off on =
downloading message bodies due to power or network usage concerns. It =
may also just download the structured data part and not any other MIME =
part. For a message with a boarding pass or ticket, it may want to =
download just that part for now, and download the rest of the body parts =
according to its normal body download scheduling.

Q: Should this replace the message flags defined in section 6?
A: I lean toward yes, but I can also see some potential use cases for =
the message flags (like, maybe being better supported for IMAP SEARCH)?

Q: Why does this need to be a header? Can the same information not be =
derived from the BODYSTRUCTURE?
A: Currently, structured data is defined as being carried exclusively in =
application/ld+json or application/jose parts. However, the presence of =
MIME parts of those types alone are not sufficient to determine that =
they are actually structured data, as opposed to some an attachment =
which happens to use the same format. An alternative could be to define =
a new attribute on the Content-Type or Content-Disposition.
    More importantly, however, there has been discussion of allowing =
some cases of structured data being allowed to be carried in the =
text/html part. In that case, it is impossible to tell a message with =
structured data apart from any other HTML message.

Q: Why do we need a new IANA registry?
A: The current IANA registry defined by the core draft is for =
vocabularies. This new registry would be for content types. Some content =
types may share vocabularies. One content type may also use multiple =
vocabularies. Many content types may not need any vocabulary defined in =
the IANA registry, and may simply use schema.org <http://schema.org/>.
    The broader question of why the content-type is needed at all is =
addressed in question 1.

Open to any feedback, questions, or comments.

- Phillip








--Apple-Mail=_3CE72728-B99B-4490-A43A-CCB5030659EB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html aria-label=3D"message body"><head><meta http-equiv=3D"content-type" =
content=3D"text/html; charset=3Dus-ascii"></head><body =
style=3D"overflow-wrap: break-word; -webkit-nbsp-mode: space; =
line-break: after-white-space;"><div>Hi all,</div><div><br></div>I would =
like to propose that a new header field be defined in the core draft. =
The reason is that MUAs may want to be able to make choices about how =
and when to download a given message, based on the presence of =
structured data inside the message.<div><br></div><div><b>Proposed =
format:</b><br><div><br></div><div><font face=3D"Menlo">&nbsp; &nbsp; =
Structured-Email: representation=3Dmachine-readable; =
content=3Dvacation-notice;</font></div></div><div><br></div><div>The =
body of the header would be a tag-value list as defined by DKIM, with =
two tags: representation and content.</div><div><br></div><div>The =
"representation" tag can have four values: "machine-readable", "full", =
"partial", or "non".</div><div><br></div><div>These map to the types of =
representation defined in the core doc. In my reading of the core draft, =
machine-readable messages are strictly a subset of "full =
representation", while non-machine-readable messages may be any of the =
three representation types. Therefore, I've chosen to collapse =
"machine-readable" into one of the four representation types here, =
rather than express that as a separate tag. Note that "non" specifies =
the "non-representation" case, not the absence of structured =
data.</div><div><br></div><div>The "content" tag would be a =
comma-separated list of values identifying the type of structured =
content in the message. A new IANA registry would be created to register =
these types.</div><div><br></div><div>I would propose that the header =
with at least a representation tag be required, while the content tag =
would be =
optional.</div><div><br></div><div><b>FAQ</b></div><div><br></div><div><b>=
Q: </b>Why do we need this in addition to the message flags defined in =
section 6 of the core draft?</div><div><b>A: </b>Two main =
reasons:</div><div>&nbsp; &nbsp; 1. The IMAP flags rely on mailbox =
provider implementation. For a MUA designed to interoperate with a =
variety of MBPs, a reliable signal is needed for whether a message has =
structured content or not. Because the sender is the one attaching the =
structured data, they're the natural party to also attach metadata about =
the presence of the structured data.</div><div>&nbsp; &nbsp; 2. The =
currently defined flags do not convey the <i>type</i>&nbsp;of structured =
data carried in the message. This is important because the MUA may not =
understand all possible structured data that can be in an email message, =
and may only care about certain types. Even among the types that it does =
care about, the representation type and content type may inform when and =
how it wants to download the message.</div><div>&nbsp; &nbsp; For =
example, for a machine-readable one-time-code, a MUA might want to =
download it immediately, even when it would otherwise hold off on =
downloading message bodies due to power or network usage concerns. It =
may also just download the structured data part and not any other MIME =
part. For a message with a boarding pass or ticket, it may want to =
download just that part for now, and download the rest of the body parts =
according to its normal body download =
scheduling.</div><div><br></div><div><b>Q: </b>Should this replace the =
message flags defined in section 6?</div><div><b>A:</b>&nbsp;I lean =
toward yes, but I can also see some potential use cases for the message =
flags (like, maybe being better supported for IMAP =
SEARCH)?</div><div><br></div><div><b>Q: </b>Why does this need to be a =
header? Can the same information not be derived from the =
BODYSTRUCTURE?</div><div><b>A:</b>&nbsp;Currently, structured data is =
defined as being carried exclusively in application/ld+json or =
application/jose parts. However, the presence of MIME parts of those =
types alone are not sufficient to determine that they are actually =
structured data, as opposed to some an attachment which happens to use =
the same format. An alternative could be to define a new attribute on =
the Content-Type or Content-Disposition.</div><div>&nbsp; &nbsp; More =
importantly, however, there has been discussion of allowing some cases =
of structured data being allowed to be carried in the text/html part. In =
that case, it is impossible to tell a message with structured data apart =
from any other HTML message.</div><div><br></div><div><b>Q:</b>&nbsp;Why =
do we need a new IANA registry?</div><div><b>A:</b>&nbsp;The current =
IANA registry defined by the core draft is for <i>vocabularies</i>. This =
new registry would be for <i>content types</i>. Some content types may =
share vocabularies. One content type may also use multiple vocabularies. =
Many content types may not need any vocabulary defined in the IANA =
registry, and may simply use <a =
href=3D"http://schema.org">schema.org</a>.</div><div>&nbsp; &nbsp; The =
broader question of why the content-type is needed at all is addressed =
in question 1.</div><div><br></div><div>Open to any feedback, questions, =
or comments.</div><div><br></div><div>- =
Phillip</div><div><br></div><div><br></div><div><br></div><div><br></div><=
div><br></div><div><br></div><div><br></div></body></html>=

--Apple-Mail=_3CE72728-B99B-4490-A43A-CCB5030659EB--

