Re: [Jmap] AD review of draft-ietf-jmap-mail-12

"Bron Gondwana" <brong@fastmailteam.com> Wed, 09 January 2019 22:45 UTC

Return-Path: <brong@fastmailteam.com>
X-Original-To: jmap@ietfa.amsl.com
Delivered-To: jmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C1927126DBF for <jmap@ietfa.amsl.com>; Wed, 9 Jan 2019 14:45:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.983
X-Spam-Level:
X-Spam-Status: No, score=-1.983 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=edhPu4c3; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=qiGNzkF8
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id y7Q0mbUgNuIl for <jmap@ietfa.amsl.com>; Wed, 9 Jan 2019 14:45:34 -0800 (PST)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EB5EF124D68 for <jmap@ietf.org>; Wed, 9 Jan 2019 14:45:33 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 3752C23144 for <jmap@ietf.org>; Wed, 9 Jan 2019 17:45:32 -0500 (EST)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Wed, 09 Jan 2019 17:45:32 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=message-id:in-reply-to:references:date:from :to:subject:content-type; s=fm1; bh=qwYR8UD11ywgkpVGLV/gZ1CXtEGj z5r33+og1yBE8eg=; b=edhPu4c3FvqG8+o8QQbF7LZxggesC0agQTg2bvf9jROB eZEBRGQUrr2BOrkg5ZT+E+QfXkkIkbAJdgd3oC+XZ3WI3F8Eosdzevp28vtEPc2a Tt5w6Ds3hClnXaP2z0A2zbXuMaDH87lzvjS68zYOMPSiDBbWdVmKPq3/UNRSRzjr LwxjQ+6sSrTJ6Q6/fONVYI8+z9DbH6VYF7r4Dz5nT5utaUjZkaX0McAoTuDY0m2V fCvWX+feaEhV5rRWzk6tBPEE0rXDuAMxdEhHG0EJv/3mW28AZ5Q+soNyvIpaP90J NUAxfprkBX3Wu4PH1sXXry7mEyFj+0qpK/jhFKWApA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=qwYR8UD11ywgkpVGL V/gZ1CXtEGjz5r33+og1yBE8eg=; b=qiGNzkF8R4RyhdE2Fx/ZKuCIrzm4KrFJp PXADov4YZHxV0LwvuT3wx0RJmPUz04O3d4hap67vWfiPT5b8p4R2EDlegMjNvHhM 2k2+BLumVyUDth9+gKmjwsRxY7ssi7PStTpsTGWMvokbPyX5wz1/cejs5sabUp3O vJZi4ySTr0udK4ZMdFI86HrqOi1T8Z2YsPeXsFGYI++SLieymoZjPEn0aNiFKuV0 9ZIYFMvQVs4Q3D3gZJoObNIa2V0X64IMTMDBdxnOtAr6kCkRcKwKn4y62IGFw7eH fGjJ5gbTjkY770EW3Z2eBVxjpQxLaOM5aG9OlvBypBPeMEjI+rgWw==
X-ME-Sender: <xms:i3k2XA_PFqkhNgDzgfKtlLO9cqdwhpRhUIQhzWeDPHsdKJmwxrscBQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtledrfedugdduieeiucdltddurdegtdekrddttd dmucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhht necuuegrihhlohhuthemuceftddtnecunecujfgurhepofgfkfgjfhffhffvufgtsegrtd erreerredtnecuhfhrohhmpedfuehrohhnucfiohhnugifrghnrgdfuceosghrohhnghes fhgrshhtmhgrihhlthgvrghmrdgtohhmqeenucffohhmrghinhepghhithhhuhgsrdgtoh hmnecurfgrrhgrmhepmhgrihhlfhhrohhmpegsrhhonhhgsehfrghsthhmrghilhhtvggr mhdrtghomhenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:i3k2XMcKYIWWRG9b9FYLeXCgbuuHsaIsacZv8x4WjB-klLU2rRMaHA> <xmx:i3k2XFxNdm84U-k1ywLxQZKK0seFuRGmjYJI-L9XFE2pFQGtqo1rkQ> <xmx:i3k2XPyuunmSjCv2ePt5k9btKMx42pU4tDNbdvkeyoWvSJoltYuINQ> <xmx:jHk2XByHTryScO5hK1Ycua-N7aQSPdl2JWI4dBC3Q527B4tXshWWCg>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id B153F203F1; Wed, 9 Jan 2019 17:45:31 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-739-g7452a1e-fmstable-20190103v1
X-Me-Personality: 56629417
Message-Id: <fcc8bcb9-39f2-4928-a9ee-7fd7db97f869@www.fastmail.com>
In-Reply-To: <98b0db46-93e6-d03b-085d-15f66912fca6@isode.com>
References: <98b0db46-93e6-d03b-085d-15f66912fca6@isode.com>
Date: Wed, 09 Jan 2019 17:45:29 -0500
From: Bron Gondwana <brong@fastmailteam.com>
To: jmap@ietf.org
Content-Type: multipart/alternative; boundary="fa842d9f95ea4155801c0f071089e9c6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/kPF3i35lOxNjBow6eS-Y45iIFfc>
Subject: Re: [Jmap] AD review of draft-ietf-jmap-mail-12
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: JSON Message Access Protocol <jmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jmap>, <mailto:jmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap/>
List-Post: <mailto:jmap@ietf.org>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jmap>, <mailto:jmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 22:45:36 -0000

On Thu, Jan 10, 2019, at 04:34, Alexey Melnikov wrote:
> Is it worth having a registry for these a la Section 6.2 of RFC 8494?

Do we want to do this afterwards and reference both JMAP and SMTP-SUBMISSION in an RFC which collects up the current status and bootstraps the registry, like we did for \Important? I ask because I'm not sure if we should do this work in JMAP or EXTRA.

> 
> In Section 2:
> 
> > Servers MUST forbid sibling Mailboxes with the same name.
> 
> What exactly is this trying to say? Do you mean 2 siblings with the same 
> name? (is it just a way to say that a mailbox name is unique among all 
> of its siblings?)
> 
> Or does it mean that a mailbox A can't have sibling A? If yes, then why?

It was the first of those, no two folders with the same (parentId, name) tuple.

> 
> RFC 4314 (IMAP ACL) needs to be referenced at least Informatevely (due 
> to Myrights command reference).

This got discussed during the core review. I believe it's already fixed.

> IMAP4rev1 (RFC 3501) should be an Informative reference (due to 
> referencing the following terms: subscriptions, internal date).

Yep, good point:

https://github.com/jmapio/jmap/issues/277

> 
> In Section 4.1.2.1:
> 
> > A server MAY use heuristics to
> > determine a charset and decode the octets, or MAY replace any octet
> > or octet run with the high bit set that violates UTF-8 syntax with
> > the unicode replacement character (U+FFFD).
> 
> Do we really want to encourage the "MAY use heuristics" part? Such email 
> messages are non compliant and thus not in scope for this document!

Leaving this one for Neil to comment on before creating an issue

> 
> So RAW will typically have the leading space, as most generated messages 
> have a space after ":" that terminates the header field name. Is it 
> worth pointing this out to implementors?

That's sounds like a definitely worthwhile thing to point out!

https://github.com/jmapio/jmap/issues/278

> In Section 4.1.2.2:
> 
> >5. Any [RFC6532] UTF-8 values decoded.
> 
> Decoded from what? They are already in UTF-8!
> 
>  o Comment
> 
> RFC 5322 defines "Comments" header field (note that it is plural).
> 
> Also, what about "Keywords" header field?
> 
> Is it worth explicitly mentioning Content-Description header field here 
> as well?
> 
> 
> In Section 4.1.2.3:
> 
> "Any [RFC6532] UTF-8 values MUST be decoded." -- again, decoded from what?
> 
> 
> Is RFC 2231 encoding allowed in this and the following section?
> 
> 
> In 4.1.3:
> 
> asText and asAddresses is not defined in the document. Did you mean:
> 
> 4.1.2.2. Text
> 
> 4.1.2.3. Addresses
> 
> ?
> 
> If yes, you need to clarify this somewhere.
> 
> 
> In Section 4.1.4:
> 
> You need to define handling for unrecognised Content-Transfer-Encoding 
> values here.
> 
> 
> "cid:" needs to Normatively reference RFC 2392. HTML needs a reference 
> as well.

https://github.com/jmapio/jmap/issues/279
https://github.com/jmapio/jmap/issues/280

> In Section 4.2 (and similar text in 4.9):
> 
> maxBodyValueBytes:
> 
>  "The server MUST ensure the truncation results in valid UTF-8 and does 
> not occur mid-codepoint." --
> 
> The document needs to make sure that this is only true for body parts 
> which are known to be textual (e.g. text/plain, text/html, XML, JSON). 
> If a body part is a JPEG image, this requirement doesn't make sense.

The "bodyValues" is only defined for text/ parts I believe:

 o  *bodyValues*: "String[EmailBodyValue]" (immutable) This is a map
      of _partId_ to an *EmailBodyValue* object for none, some or all
      "text/*" parts.  Which parts are included and whether the value is
      truncated is determined by various arguments to _Email/get_ and
      _Email/parse_.  An *EmailBodyValue* object has the following
      properties:

Hence it always contains UTF-8 data.

> 
> 
> In Sections 4.8/4.9:
> 
> The document needs to explicitly allow EAI messages, not just RFC 5322 
> format.

https://github.com/jmapio/jmap/issues/281

> 
> In Section 5:
> 
> HTML is now definitely a Normative reference. More details of what is 
> expected in HTML escaping, other than <mark> wrap?
> 
> 
> In Section 7:
> 
> Are "MDN" and "DSN" blobIds referencing only the machine parseable part 
> or the whole multipart/report coming back? I think the document should 
> clarify this and (ideally) give some examples.

https://github.com/jmapio/jmap/issues/282

> 
> End of Section 7.5:
> 
>  "The server MAY choose to localise this string into the user's 
> preferred language, if known."
> 
> How can this be done? Should the identity object contain some preferred 
> language tag(s)? This needs a bit more thought.
> 

https://github.com/jmapio/jmap/issues/283

I also commented that it might be better to have the user's preferred language as part of core rather than part of mail.

> In Section 9.3: SMTP XCLIENT should be an Informative reference.

https://github.com/jmapio/jmap/issues/284

> 
> In Section 10.4.4 (Registration of JMAP keyword '$answered')
> 
>  Security Considerations: A server implementing this keyword as a
>  shared keyword may disclose that a user considers the message as
>  flagged for urgent/special attention.
> 
> This looks like a cut & paste error from the text specified for $flagged.
> 
>  This information would be
>  exposed to other users with read permission for the mailbox keywords.

https://github.com/jmapio/jmap/issues/285

Phew! Thanks for the detailed review Alexey.

Cheers,

Bron.

--
 Bron Gondwana, CEO, FastMail Pty Ltd
 brong@fastmailteam.com