[Sml] Proposal: define a new Structured-Email header field
Phillip Tao <ptao@apple.com> Fri, 04 September 2026 17:12 UTC
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: [Sml] Proposal: 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>
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=machine-readable; content=vacation-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
- [Sml] Proposal: define a new Structured-Email hea… Phillip Tao
- [Sml] Re: Proposal: define a new Structured-Email… Adam Sobieski