Re: [Extra] I-D Action: draft-ietf-extra-imap4rev2-15.txt

Stephan Bosch <> Mon, 22 June 2020 17:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 978213A1038 for <>; Mon, 22 Jun 2020 10:56:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id pcRJxp7-yXZe for <>; Mon, 22 Jun 2020 10:56:04 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 4AE693A0DBE for <>; Mon, 22 Jun 2020 10:56:04 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by (Postfix) with ESMTPS id C81096A230; Mon, 22 Jun 2020 19:56:02 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=201705; t=1592848562; bh=IlHc91RlzD5b01s4US7Z1bEMdgcHzQsIODOwnnhk2p8=; h=Subject:To:References:From:Date:In-Reply-To:From; b=KxzoEP4+QAXdCC6ywK7o95f+T1PTZMAnRyx6+TYWueExhVM6VSYZF25N9KikuiCrH noGL2qLj/dteJg3KTRAj+NcS7pcxBOj62waZCSEKPDaDlo0Segg+YCkBWJxoLs1Vgt MIbIYj3uAEIwgp/uHc7hze3EdFbP0wZxWQQTFKeOZK+WE1QqJCXUTBlUqFsjQnHg56 fYCnti0xaQ+2qbADDosHVg7A655BYy7tSLBSQX+Y8EbdM2iDuCaq4hPXNs7bOCtpxP q2eS4wwPyENS7FLbPAHIODWr0N2AS55XoypwEoZZp5ezK29zvLcjJb+tiLoVL+kgPK +V5s04q9p4Yxg==
Received: from [] (unknown []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id 8A5593C004B; Mon, 22 Jun 2020 19:56:02 +0200 (CEST)
To: Alexey Melnikov <>,
References: <> <>
From: Stephan Bosch <>
Message-ID: <>
Date: Mon, 22 Jun 2020 19:56:01 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <>
Subject: Re: [Extra] I-D Action: draft-ietf-extra-imap4rev2-15.txt
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email mailstore and eXtensions To Revise or Amend <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 22 Jun 2020 17:56:07 -0000


On 17/06/2020 13:53, Alexey Melnikov wrote:
> Hi all,
> On 17/06/2020 10:53, wrote:
>> The IETF datatracker status page for this draft is:
>> There are also htmlized versions available at:
>> A diff from the previous version is available at:
> In this version I finally removed multiple list patterns and also 
> clarified a few things based on earlier comments.

I gave this document a quick review. Below are my comments so far. 
Quoted text from the document is copied directly, while my comments are 
prefixed with "-> ".




$Phishing  The $Phishing keyword can be used by a delivery agent to
       mark a message as highly likely to be a phishing email.  An email
       that's determined to be a phishing email by the delivery agent
       should also be considered a junk email and have the appropriate
       junk filtering applied, including setting the $Junk flag and
       placing in the \Junk special-use mailbox if available.
-> Special-use is not mentioned up to this point. It needs to be 
explained briefly or referred elsewhere.


    5.  Two characters, "#" and "&", have meanings by convention, and
        should be avoided except when used in that convention.
-> Maybe remove the mystery and mention briefly what these are used for 
conventionally (or provide some citation). Section does part of 
this, so that could at least be referred from here.


-> This section mentions several examples of specific selection and 
return options without introduction. It should maybe refer to subsequent 
sections at the first instance of this.

    Future extensions to this
    specification should keep parallelism in mind and define a pair of
    corresponding options.
-> So, what exactly is meant by "parallelism" here? Do you mean 
"dualism" or something like that (which I actually find equally confusing)?

-> The SPECIAL-USE extension, which adds selection and return options, 
is not mentioned here, while the specification envelops it.


                                                            For each
          selectable mailbox matching the list pattern and selection
          options, the server MUST return an untagged LIST response
          followed by an untagged STATUS response containing the
          information requested in the STATUS return option.
-> This sentence describes a hard requirement, but subsequent paragraphs 
describe what amounts to exceptions. Maybe this sentence should already 
announce this to the reader; e.g. ", except for the following cases." or 
something like that. This should also avoid confusion about the 
contraction that seems to exist between the paragraphs.


    The CHILDREN return option implements the Child Mailbox Extension,
    originally proposed by Mike Gahrns and Raymond Cheng, of Microsoft
    Corporation. Most of the information in this section is taken
    directly from their original specification [RFC3348].
-> Is it conventional to have acknowledgements like this in the 
normative text? Also, text borrowed from other RFCs is only acknowledged 
in Appendix E.

    It is an error for the server to return both a \HasChildren and a
    \HasNoChildren attribute in the same LIST response.
-> Any recommendation for what clients should do if this does happen? 
Provisionally treat it as \HasChildren?


    Namespace-Response-Extensions ABNF non
    terminal is defined for extensibility and MAY be included in the
-> What is this? And this sentence is incomplete (no article at the 


    On successful completion of an APPEND, the server SHOULD return an
    APPENDUID response code.
-> This response code is not explained at this port. Provide brief 
purpose or reference to where it is explained.

    In the case of a mailbox that has UIDNOTSTICKY status (see
    UIDNOTSTICKY response code definition)
-> See where? Needs reference.


-> Now that the BINARY fetch items are also part of the specification, 
the "<section>" bit should probably be described separately before the 
enumeration of fetch data items. Stuffing it in the description of BODY 
is confusing, as it applies to several fetch items now.

    BODYSTRUCTURE  The [MIME-IMB] body structure of the message.  This is
       computed by the server by parsing the [MIME-IMB] header fields in
       the [RFC-5322] header and [MIME-IMB] headers.

    ENVELOPE  The envelope structure of the message.  This is computed by
       the server by parsing the [RFC-5322] header into the component
       parts, defaulting various fields as necessary.
-> At least these two could use a forward reference to the FETCH 
response section, where the semantics of these are described in more 
detail. Could also put a single reference in the sentence announcing the 
list of data items.


    On successful completion of a COPY, the server SHOULD return a
    COPYUID response code.
-> This response code is not explained at this point. Provide brief 
purpose or reference to where it is explained (weirdly, section on MOVE 
does this correctly).

    In the case of a mailbox that has UIDNOTSTICKY status (see the
    UIDNOTSTICKY response code), the server MAY omit the COPYUID response
    code as it is not meaningful.
-> See where? Needs reference.


-> Isn't this sub-section supposed to be in the section before? It is 
about the mailbox size, not message data.


             Note: [RFC-5322] requires that all messages have a valid
             Date header.  Therefore, the date member in the envelope can
             not be NIL or the empty string.
-> We all like to live in a perfect world, but what should the server do 
if the sender is naughty and the message has no Date header? Return the 
internal date instead?

	    Note: [RFC-5322] requires that the In-Reply-To and Message-
             ID headers, if present, have non-empty content.  Therefore,
             the in-reply-to and message-id members in the envelope can
             not be the empty string.
-> Same...

             Note: [RFC-5322] requires that all messages have a valid
             From header.  Therefore, the from, sender, and reply-to
             members in the envelope can not be NIL.
-> Same...


-> What about RFC 3501?


    Additional security considerations are discussed in the section
    discussing the AUTHENTICATE and LOGIN commands.
-> Explicit references
    As this specification revises the AUTH= prefix, STARTTLS and
    LOGINDISABLED extensions previously defined in [IMAP-TLS], IANA is
    requested to update registry entries for these 3 extensions to point
    to this document.
-> This is not noted in the document header.

General comments:

-> This document should probably mention at the appropriate locations 
pre-existing and often-implemented extensions that significantly improve 
upon the base IMAP4rev1/2 protocol. So, for example, the section 
describing IDLE could mention the NOTIFY capability.
-> Enumerations of options/flags/items/identifiers are often strangely 
formatted. Compare e.g. the search key descriptions in 
to the old