Re: [Jmap] AD review of draft-ietf-jmap-mail-12
Alexey Melnikov <alexey.melnikov@isode.com> Thu, 10 January 2019 10:57 UTC
Return-Path: <alexey.melnikov@isode.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 8FBF6130DC8 for <jmap@ietfa.amsl.com>; Thu, 10 Jan 2019 02:57:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=isode.com
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 3bPOlGtAXVTP for <jmap@ietfa.amsl.com>; Thu, 10 Jan 2019 02:57:54 -0800 (PST)
Received: from statler.isode.com (Statler.isode.com [62.232.206.189]) by ietfa.amsl.com (Postfix) with ESMTP id C43BE1271FF for <jmap@ietf.org>; Thu, 10 Jan 2019 02:57:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1547117872; d=isode.com; s=june2016; i=@isode.com; bh=Qb7z0v1G2cOfpjcvFR7XEPeNGUzkansXd7FcS9L2T9I=; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version: In-Reply-To:References:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description; b=mOrw+3XwtdCf4g1zIGn1w4BQ8jfzn+EFLi2vlgTCvu9dZDPbVPOG4+7qZ18RCRmeRfxZ7w ak/ilAg4QD1KAxvDjGSh1Tx1Vuo9juAi6Es9pGCZ/T+JQAPa/9iobX6cxJ08/n7dAlclh7 BPOI3AnLYs9KjbbF/Ku0zwUw4zimSxk=;
Received: from [172.20.1.215] (dhcp-215.isode.net [172.20.1.215]) by statler.isode.com (submission channel) via TCP with ESMTPSA id <XDclMAAcqzgu@statler.isode.com>; Thu, 10 Jan 2019 10:57:52 +0000
To: Neil Jenkins <neilj@fastmailteam.com>
Cc: IETF JMAP Mailing List <jmap@ietf.org>
References: <98b0db46-93e6-d03b-085d-15f66912fca6@isode.com> <ae65bb55-be63-4117-98d4-a8ff10bc675e@beta.fastmail.com>
From: Alexey Melnikov <alexey.melnikov@isode.com>
Message-ID: <0f1c0d19-f473-c7f6-11e2-a60f12b5a106@isode.com>
Date: Thu, 10 Jan 2019 10:57:30 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.0
In-Reply-To: <ae65bb55-be63-4117-98d4-a8ff10bc675e@beta.fastmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------110BE3B836CAE9356D2E2F60"
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/cHKb7lDalwz2L6U5B5NEBZekh7Y>
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: Thu, 10 Jan 2019 10:57:56 -0000
Hi Neil, Below I removed comments from my reply where we are in agreement: On 10/01/2019 03:42, Neil Jenkins wrote: > On Thu, 10 Jan 2019, at 4:34 AM, Alexey Melnikov wrote: >> By default, the JMAP server should hide EHLO >> capabilities that are to do with the transport mechanism and thus >> are only relevant to the JMAP server >> >> Is it worth having a registry for these a la Section 6.2 of RFC 8494? > > I don't feel a need for one strongly, but we can add one if you think > it's necessary? This is a possible interop issue and I would rather have a registry. I am Ok with Bron's proposal to define it in another document. >> In addition, servers MUST support a psuedo-type called >> "EmailDelivery" in the push mechanisms. >> >> I think an example or pointer to an example would be useful here. > > I've added the following example to the document; does this clarify it > for you? > > /The client has registered for push notifications just for the > `EmailDelivery` type (see [@!I-D.ietf-jmap-core] for details of the > push system)./ This mostly works, but EmailDelivery is not defined in CORE, it is only shown there in examples. / / > /The user marks an email as read on another device, causing the state > string for the `Email` type to change, however as nothing new was > added to the store the `EmailDelivery` state does not change and > nothing is pushed to the client. A new message arrives in the user's > inbox, again causing the `Email` state to change. This time the > `EmailDelivery` state also changes, and a StateChange object is pushed > to the client with the new state string. The client may then resync to > fetch the new message immediately./ The rest looks fine. > >> In Section 2: >> >> > Servers MUST forbid sibling Mailboxes with the same name. >> What exactly is this trying to say? > > I have rewritten this to say: > > /There MUST NOT be two mailboxes with both the same parent and the > same name./ //// > > Is that clear? (IMAP is path based so naturally you cannot have two > sibling mailboxes with the same name; but JMAP is id based so in > theory you could. For IMAP compatibility, and to avoid user confusion, > this is forbidden by fiat.) If you change "two mailboxes" to "two sibling mailboxes", that would be clear. > > > 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! > > Well, they appear in the real world so servers do need to deal with > them. Using heuristics to determine what the sender intended often > provides the best user experience (customers tend not to care that it > was the sender that sent something broken…). MAY is compliance language, but "MAY use heuristics" is impossible to test for interoperability. > However, I'm not strongly attached. Would you prefer me to replace > this with the following? > > /A server SHOULD replace any octet or octet run with the high bit set > that violates UTF-8 syntax with the unicode replacement character > (U+FFFD).// > / Yes, please. [snip] >> Is it worth explicitly mentioning Content-Description header field here >> as well? > > The spec currently only has restrictions on RFC5322 and RFC2369 > headers. Other headers such as this one are not explicitly forbidden > so may be used with the form already. So I don't think it's necessary > to mention explicitly. It just took me some time to realize that it is allowed. I don't have a strong preference. >> In Section 4.1.2.3: >> Is RFC 2231 encoding allowed in this and the following section? > > I don't think so, as To, Cc etc. don't have parameter values. Or have > I got that wrong? You are right. I think I want a new type for parsing ;-separated attribute=value pairs with RFC 2231 parameters, as this is a pain to do in clients. >> >> In 4.1.3: >> >> asText and asAddresses is not defined in the document. Did you mean: > > This is defined at the top of page 26 in 4.1.3: > > o *:as{header-form}* This means the value is in a parsed form, where > "{header-form}" is one of the parsed-form names specified above. > If not given, the value is in _Raw_ form. Never mind than. >> In Section 4.1.4: >> >> You need to define handling for unrecognised Content-Transfer-Encoding >> values here. > > I have added > > /If the transfer encoding is unknown, it is treated as though it had > no transfer-encoding./ Ok. I think you should also mention that this would result in isEncodingProblem being true as well. [snip] >> 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. > > As Bron pointed out, bodyValue is only returned like this for text/* > types. Ok. Maybe explain this in a comment, if you feel like it. > >> In Sections 4.8/4.9: >> >> The document needs to explicitly allow EAI messages, not just RFC 5322 >> format. > > I'm not entirely sure how to specify this. I have added this sentence > to the introduction to each of these methods: > > /The server SHOULD support messages with [@!RFC6532] EAI headers./ In IMAP4rev2 we made it a MUST. I wouldn't mind if you add a capability for this. > Is that sufficient? (And should it be a MUST?) > > 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. > > This is intended to be the whole MIME message a with a top-level > content-type of multipart/report; I have added the following line to > the two properties to clarify: > > /The blob is the whole MIME message (with a top-level content-type of > multipart/report), as received./ Ok. I suggest you add Normative references to RFCs that define MDN and DSN report types. >> 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? > > This is just acknowledging the server may have some kind of > out-of-band knowledge about the authenticated user and if so should > use it to increase the likelihood of presenting an understandable > error to the user. I think anything more is out of scope of the > current specification. Use of MAY is compliance language, but you don't provide a way to do this interoperably (or at all). At minimum clients should be able to deduce the language tag used, so you must have a field for conveying it (even if it is omitted in most cases.) I think I agree with Bron that the mechanism for specifying user's preferred language(s) should be specified in CORE. Best Regards, Alexey
- [Jmap] AD review of draft-ietf-jmap-mail-12 Alexey Melnikov
- Re: [Jmap] AD review of draft-ietf-jmap-mail-12 Bron Gondwana
- Re: [Jmap] AD review of draft-ietf-jmap-mail-12 Neil Jenkins
- Re: [Jmap] AD review of draft-ietf-jmap-mail-12 Alexey Melnikov
- Re: [Jmap] AD review of draft-ietf-jmap-mail-12 Arnt Gulbrandsen
- Re: [Jmap] AD review of draft-ietf-jmap-mail-12 Neil Jenkins
- Re: [Jmap] AD review of draft-ietf-jmap-mail-12 Alexey Melnikov
- Re: [Jmap] AD review of draft-ietf-jmap-mail-12 Neil Jenkins