From nobody Tue Mar 9 15:21:38 2021 Return-Path: X-Original-To: imapext@ietfa.amsl.com Delivered-To: imapext@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D2F5A3A0ED1 for ; Tue, 9 Mar 2021 15:21:36 -0800 (PST) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.397 X-Spam-Level: X-Spam-Status: No, score=-1.397 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, SUBJ_ALL_CAPS=0.5] autolearn=no autolearn_force=no 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 OJ-1se5T4900 for ; Tue, 9 Mar 2021 15:21:35 -0800 (PST) Received: from smtp.qbik.com (smtp.qbik.com [122.56.26.1]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4055A3A1115 for ; Tue, 9 Mar 2021 15:21:34 -0800 (PST) Received: From [192.168.1.162] (unverified [192.168.1.162]) by SMTP Server [192.168.1.3] (WinGate SMTP Receiver v9.4.2 (Build 6000)) with SMTP id <0002429640@smtp.qbik.com>; Wed, 10 Mar 2021 12:21:30 +1300 From: "Adrien de Croy" To: "imapext@ietf.org" Date: Tue, 09 Mar 2021 23:21:32 +0000 Message-Id: In-Reply-To: <3089d87b-5884-44bf-8eb9-ef5d34f16756@spark> References: <40f8d9ec-2387-4e38-819d-fdb4407c5709@spark> <3089d87b-5884-44bf-8eb9-ef5d34f16756@spark> Reply-To: "Adrien de Croy" User-Agent: eM_Client/8.1.1054.0 Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="------=_MB38B368CF-6111-4487-B9F4-7BC34898F36B" Archived-At: Subject: [imapext] SEARCHRES RFC5182 X-BeenThere: imapext@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion of IMAP extensions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Mar 2021 23:21:37 -0000 --------=_MB38B368CF-6111-4487-B9F4-7BC34898F36B Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi Everyone I've been looking into this extension, but it has a number of problems=20 and uncertainties in the spec especially: * in relation to storing results of ESEARCH extensions, it refers to=20 them as messages). * in relation to reporting errors if the saved results are incompatible=20 (e.g. stored SEQ but asked to use as UID or vice versa) * dealing with expunging of messages. So my first question relates to whether I'm even wasting my time. The=20 imapwiki shows very few servers support it, but are any clients known to=20 support it? Regards Adrien --------=_MB38B368CF-6111-4487-B9F4-7BC34898F36B Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Everyone

I've been looking into this extensio= n, but it has a number of problems and uncertainties in the spec=C2=A0especially:

* in rela= tion to storing results of ESEARCH extensions, it refers to them as message= s).
* in relation to reporting errors if the saved r= esults are incompatible (e.g. stored SEQ but asked to use as UID or vice ve= rsa)
* dealing with expunging of messages.

So my first question relates to whether I'm even w= asting my time.=C2=A0 The imapwiki shows very few servers support it, but a= re any clients known to support it?

Regards

Adrien
--------=_MB38B368CF-6111-4487-B9F4-7BC34898F36B-- From nobody Wed Mar 10 02:07:34 2021 Return-Path: X-Original-To: imapext@ietfa.amsl.com Delivered-To: imapext@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3B74A3A20F5 for ; Wed, 10 Mar 2021 02:07:32 -0800 (PST) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.099 X-Spam-Level: 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, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 GbqvypebSzFY for ; Wed, 10 Mar 2021 02:07:30 -0800 (PST) Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by ietfa.amsl.com (Postfix) with ESMTP id A70C83A20F3 for ; Wed, 10 Mar 2021 02:07:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1615370846; d=isode.com; s=june2016; i=@isode.com; bh=/D52Bt78tmzGpxaHhFT0ezFi8z+Nl63L6iD5PFiWTyk=; 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=NgBaFyi7gdEA2shNlkdQpIE13NC4l0ZzH/M4c+Ws49K8bvwHIst5u1jLAhdVeJ4+tOgcP5 tqsPj5hsS++hYJyKZuHSmg1lv07T9/pf7GLPUIwbfWUYB91m7hWF/tlY8Lpa8w7pzkbOSh fp+NobDf8dkE4f/Xt4+4aYQVzoHcTQQ=; Received: from [192.168.0.5] (4e697ac1.skybroadband.com [78.105.122.193]) by waldorf.isode.com (submission channel) via TCP with ESMTPSA id ; Wed, 10 Mar 2021 10:07:26 +0000 From: Alexey Melnikov To: Adrien de Croy References: <40f8d9ec-2387-4e38-819d-fdb4407c5709@spark> <3089d87b-5884-44bf-8eb9-ef5d34f16756@spark> Cc: "imapext@ietf.org" Message-ID: <23240094-4827-f85e-6ad5-6b22bc09905b@isode.com> Date: Wed, 10 Mar 2021 10:07:25 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="------------0A813B625497C00D280239E2" Content-Language: en-GB Archived-At: Subject: Re: [imapext] SEARCHRES RFC5182 X-BeenThere: imapext@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion of IMAP extensions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Mar 2021 10:07:32 -0000 --------------0A813B625497C00D280239E2 Content-Type: text/plain; charset=utf-8; format=flowed Content-transfer-encoding: quoted-printable Hi Adrien, On 09/03/2021 23:21, Adrien de Croy wrote: > Hi Everyone > > I've been looking into this extension, but it has a number of problems=20 > and uncertainties in the spec especially: > > * in relation to storing results of ESEARCH extensions, it refers to=20 > them as messages). Can you elaborate/quote specific text which is confusing? > * in relation to reporting errors if the saved results are=20 > incompatible (e.g. stored SEQ but asked to use as UID or vice versa) The document is quite clear that $ references message numbers or UIDs as=20 appropriate in the corresponding context. So a saved result is never=20 incompatible. You can see this in the last paragraph of section 2.1: =C2=A0=C2=A0 Implementation note: server implementors should note that "$" = can =C2=A0=C2=A0 reference IMAP message sequences or UID sequences, depending o= n the =C2=A0=C2=A0 context where it is used.=C2=A0 For example, the "$" marker ca= n be set as =C2=A0=C2=A0 a result of a SEARCH (SAVE) command and used as a parameter to= a UID =C2=A0=C2=A0 FETCH command (which accepts a UID sequence, not a message seq= uence), =C2=A0=C2=A0 or the "$" marker can be set as a result of a UID SEARCH (SAVE= ) =C2=A0=C2=A0 command and used as a parameter to a FETCH command (which acce= pts a =C2=A0=C2=A0 message sequence, not a UID sequence). > * dealing with expunging of messages. I think this is also clear, from Section 2.1: =C2=A0=C2=A0 When a message listed in the search result variable is EXPUNGE= d, it =C2=A0=C2=A0 is automatically removed from the list.=C2=A0 Implementors are= reminded =C2=A0=C2=A0 that if the server stores the list as a list of message number= s, it =C2=A0=C2=A0 MUST automatically adjust them when notifying the client about =C2=A0=C2=A0 expunged messages, as described in Section 7.4.1 of [IMAP4]. If it helps, the best way of implementing this (IMHO) is to store a list=20 of UIDs in some form and translate them to sequence numbers in the=20 server, when needed. When messages are expunged, this list is purged of=20 expunged messages. > So my first question relates to whether I'm even wasting my time.=C2=A0 Th= e=20 > imapwiki shows very few servers support it, but are any clients known=20 > to support it? I don't know the answer to this. Best Regards, Alexey --------------0A813B625497C00D280239E2 Content-Type: text/html; charset=utf-8 Content-transfer-encoding: quoted-printable

Hi Adrien,

On 09/03/2021 23:21, Adrien de Croy wrote:
Hi Alexey

------ = Original Message ------
From: "Alexey Melnikov" <alexey.melnikov@isode.com>
To: "Adrien de Croy" <adrien@qbi= k.com>
Cc: "imapext@ietf.org" <imapext@ietf.org>
Sent: 10/03/2021 11:07:25 pm
Subject: Re: [imapext] SEARCHRES RFC5182

Hi Adrien,

On 09/03/2021 23:21, Adrien de Croy wrote:
=20 =20 Hi Everyone

I've been looking into this extension, but it has a number of problems and uncertainties in the spec=C2=A0especially:

* in relation to storing results of ESEARCH extensions, it refers to them as messages).

Can you elaborate/quote specific text which is confusing?



When the SAVE result option is co= mbined with the MIN or MAX [ESEARCH]
=C2=A0 =C2=A0result option, and n= one of the other ESEARCH result options are
=C2=A0 =C2=A0present, the= corresponding MIN/MAX is returned (if the search result
=C2=A0 =C2=A0i= s not empty), but the "$" marker would contain a single message as
=C2= =A0 =C2=A0returned in the MIN/MAX return item.


It's not clear if $ is storing the result of the MIN, or somet= hing else.=C2=A0 But I guess those are the same for MIN and MAX - the IDs.<= /div>

= $ only stores message IDs, not messages.=C2=A0 Maybe replace "contain a sin= gle message" with "refers to a single message" or "contains the message ID"=

I guess I should have read it a few more times.=C2=A0 Maybe it's not so un= clear.


* in relation to reporting errors if the saved results are incompatible (e.g. stored SEQ but asked to use as UID or vice versa)

The document is quite clear that $ references message numbers or UIDs as appropriate in the corresponding context. So a saved result is never incompatible.


So we save both UIDs and SEQ = and adjust these on expunge, and just use whichever one is appropriate in= the subsequent commands.

Thanks!

Adrien

<= p>

You can see this in the last paragraph of section 2.1:

=C2=A0=C2=A0 Implementation note: server implementors should note th= at "$" can
=C2=A0=C2=A0 reference IMAP message sequences or UID sequences, depen= ding on the
=C2=A0=C2=A0 context where it is used.=C2=A0 For example, the "$" mar= ker can be set as
=C2=A0=C2=A0 a result of a SEARCH (SAVE) command and used as a parame= ter to a UID
=C2=A0=C2=A0 FETCH command (which accepts a UID sequence, not a messa= ge sequence),
=C2=A0=C2=A0 or the "$" marker can be set as a result of a UID SEARCH = (SAVE)
=C2=A0=C2=A0 command and used as a parameter to a FETCH command (whic= h accepts a
=C2=A0=C2=A0 message sequence, not a UID sequence).

* dealing with expunging of messages.

I think this is also clear, from Section 2.1:

=C2=A0=C2=A0 When a message listed in the search result variable is EXPUNGEd, it
=C2=A0=C2=A0 is automatically removed from the list.=C2=A0 Implemento= rs are reminded
=C2=A0=C2=A0 that if the server stores the list as a list of message numbers, it
=C2=A0=C2=A0 MUST automatically adjust them when notifying the client = about
=C2=A0=C2=A0 expunged messages, as described in Section 7.4.1 of [IMA= P4].


If it helps, the best way of implementing this (IMHO) is to store a list of UIDs in some form and translate them to sequence numbers in the server, when needed. When messages are expunged, this list is purged of expunged messages.

So my first question relates to whether I'm even wasting my time.=C2=A0 The imapwiki shows very few servers support it, but are any clients known to support it?
I don't know the answer to this.


Best Regards,

Alexey

--------=_MB7B96A514-F5CC-47C2-937A-7670668BDB8E-- From nobody Thu Mar 11 03:49:00 2021 Return-Path: X-Original-To: imapext@ietfa.amsl.com Delivered-To: imapext@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 617163A1A13 for ; Thu, 11 Mar 2021 03:48:59 -0800 (PST) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 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, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cridland.net 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 3RvrRUdNfoqP for ; Thu, 11 Mar 2021 03:48:56 -0800 (PST) Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 68E0A3A1A12 for ; Thu, 11 Mar 2021 03:48:56 -0800 (PST) Received: by mail-wm1-x32d.google.com with SMTP id u5-20020a7bcb050000b029010e9316b9d5so9659462wmj.2 for ; Thu, 11 Mar 2021 03:48:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cridland.net; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=T5hIKFH91ifTD1i3sppRut4Z0Yx2wFcZOVZ44ZlNr4w=; b=e3PGnwxmbGiM8mSBQB/8/XIVxd35Q40iIbvFnA+xkocEyxD7PA0BOkOVmFYAmWRrrl JhEdNixbWOocIyzaPUuDUGwh/u2Mmdb9IiiMXquHL0Rw2QwV36I9MhyaQTtEEBCkcVVF b1FOBmZ0waDFJg6mEKxF/0/3QQy4OZt8U4084= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=T5hIKFH91ifTD1i3sppRut4Z0Yx2wFcZOVZ44ZlNr4w=; b=N4yibmS1iPnqFm3BGOiPcPoamV9Dr0zt/PJ8rk3VXD14drsPU9p6x9kHFg7hDUpiyC vWwbwuvfNvWzm1Q/Pfyj3Awi1QIGlXvn2Q+5LCGs725RarFdnCttcV78E+xscfMXnWka YxO4v6PoaqDBWzIW0KnF8E1TSLqIemGMxHhqOAYU4w6tvvXxM8stMgR5FNEEfMEMyKsp aIJUk09cHukVbU6DfVnT5Cf3aQF5GsjdZ/eOcxyuOX/l0DQzb6gIWvEo8gXIpTmTLQgM XxJFkgeyLDOO7j31eq9tzXXdKg1j2VijdD7t8xBYaf2ZAuWSskqhHMFwRuFp6PsMXksh dEog== X-Gm-Message-State: AOAM531yKetP2eg2c/baPYkrs0dvzZTWZJd290nC5Wrw26iCewa4bd0M aX102V4QH11yW5wVXPzL85o3dOeJnCWAhQti/TdJtyJYwLQ= X-Google-Smtp-Source: ABdhPJwryTnPVCaXTUtl1T9xuWKh1b2jfRCzL90RDLT7+NR9w5hXhxQz2cSZCymdZMShN/58TqzdyFi4506j7tsyj2k= X-Received: by 2002:a7b:c3cd:: with SMTP id t13mr7753723wmj.109.1615463334261; Thu, 11 Mar 2021 03:48:54 -0800 (PST) MIME-Version: 1.0 References: <40f8d9ec-2387-4e38-819d-fdb4407c5709@spark> <3089d87b-5884-44bf-8eb9-ef5d34f16756@spark> <23240094-4827-f85e-6ad5-6b22bc09905b@isode.com> In-Reply-To: From: Dave Cridland Date: Thu, 11 Mar 2021 11:48:43 +0000 Message-ID: To: Adrien de Croy Cc: Alexey Melnikov , "imapext@ietf.org" Content-Type: multipart/alternative; boundary="0000000000002fc5be05bd415ec9" Archived-At: Subject: Re: [imapext] SEARCHRES RFC5182 X-BeenThere: imapext@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion of IMAP extensions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Mar 2021 11:48:59 -0000 --0000000000002fc5be05bd415ec9 Content-Type: text/plain; charset="UTF-8" On Wed, 10 Mar 2021 at 20:14, Adrien de Croy wrote: > Hi Alexey > > ------ Original Message ------ > From: "Alexey Melnikov" > To: "Adrien de Croy" > Cc: "imapext@ietf.org" > Sent: 10/03/2021 11:07:25 pm > Subject: Re: [imapext] SEARCHRES RFC5182 > > Hi Adrien, > On 09/03/2021 23:21, Adrien de Croy wrote: > > Hi Everyone > > I've been looking into this extension, but it has a number of problems and > uncertainties in the spec especially: > > * in relation to storing results of ESEARCH extensions, it refers to them > as messages). > > Can you elaborate/quote specific text which is confusing? > > > > When the SAVE result option is combined with the MIN or MAX [ESEARCH] > result option, and none of the other ESEARCH result options are > present, the corresponding MIN/MAX is returned (if the search result > is not empty), but the "$" marker would contain a single message as > returned in the MIN/MAX return item. > > > It's not clear if $ is storing the result of the MIN, or something else. > But I guess those are the same for MIN and MAX - the IDs. > > $ only stores message IDs, not messages. Maybe replace "contain a single > message" with "refers to a single message" or "contains the message ID" > > Well, it depends on how you see it conceptually. You could have the server store a list of UIDs always, and translate as required. You could also have the server store a list of tuples of (UID,seq), and filter as needed, updating the sequence numbers if an EXPUNGE occurs. Or you could have the server store $ as a std::vector> or something and format as UID or seq appropriately. In all three cases (and more) you're conceptually storing references to messages, though, and whether they're ids or not is somewhat irrelevant - when executing the search itself, you're working on messages rather than identifiers. The one thing that "$" definitely doesn't contain is a list of integers, though. > I guess I should have read it a few more times. Maybe it's not so unclear. > > > * in relation to reporting errors if the saved results are incompatible > (e.g. stored SEQ but asked to use as UID or vice versa) > > The document is quite clear that $ references message numbers or UIDs as > appropriate in the corresponding context. So a saved result is never > incompatible. > > > So we save both UIDs and SEQ and adjust these on expunge, and just use > whichever one is appropriate in the subsequent commands. > I suspect I'd store yet another internal identifier, myself, but loosely store whatever makes you get the right external behaviour. If UIDs work for you, I'd store only UIDs and treat a "$" as if it were "UID $" as needed, for example. But remember it's never a simple string substitution - otherwise "$" would fail if the saved set were to contain no messages. As for whether people use this in clients, I don't know - it's been fairly esoteric until now, but IMAP4rev2 might change this. It's very useful for "Mark all as" from a search output for online clients, but there aren't many of those around anymore. Dave. --0000000000002fc5be05bd415ec9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Wed, 10 Mar 2021 at 20:14, Adrien = de Croy <adrien@qbik.com> wrot= e:
=20 =20
Hi Alexey

------ Or= iginal Message ------
From: "Alexey Melnikov" <alexey.melnikov@isode.com>
To: "Adrien de Croy" <adrien@qbik.com>
Sent: 10/03/2021 11:07:25 pm
Subject: Re: [imapext] SEARCHRES RFC5182

Hi Adrien,

On 09/03/2021 23:21, Adrien de Croy wrote:
=20 =20 =20 =20 Hi Everyone

I've been looking into this extension, but it has a number o= f problems and uncertainties in the spec=C2=A0especially:

* in relation to storing results of ESEARCH extensions, it refers to them as messages).

Can you elaborate/quote specific text which is confusing?



When the SAVE result option = is combined with the MIN or MAX [ESEARCH]
=C2=A0 =C2=A0result option, an= d none of the other ESEARCH result options are
=C2=A0 =C2=A0present, the= corresponding MIN/MAX is returned (if the search result
=C2=A0 =C2=A0is= not empty), but the "$" marker would contain a single message as=
=C2=A0 =C2=A0returned in the MIN/MAX return item.


It's not clear if $ is storing the result of t= he MIN, or something else.=C2=A0 But I guess those are the same for MIN and= MAX - the IDs.

$ onl= y stores message IDs, not messages.=C2=A0 Maybe replace "contain a sin= gle message" with "refers to a single message" or "cont= ains the message ID"


Well, i= t depends on how you see it conceptually.

You coul= d have the server store a list of UIDs always, and translate as required.

You could also have the server store a list of tupl= es of (UID,seq), and filter as needed, updating the sequence numbers if an = EXPUNGE occurs.

Or you could have the server store= $ as a std::vector<std::shared_ptr<Message>> or something and = format as UID or seq appropriately.

In all three c= ases (and more) you're conceptually storing references to messages, tho= ugh, and whether they're ids or not is somewhat irrelevant - when execu= ting the search itself, you're working on messages rather than identifi= ers.

The one thing that "$" definitely d= oesn't contain is a list of integers, though.
=C2=A0
I guess I should have read it a few more times.=C2=A0 Maybe it's no= t so unclear.

* in relation to reporting errors if the saved results are incompatible (e.g. stored SEQ but asked to use as UID or vice versa)

The document is quite clear that $ references message numbers or UIDs as appropriate in the corresponding context. So a saved result is never incompatible.


So we save both UIDs and SEQ and adjust these on = expunge, and just use whichever one is appropriate in the subsequent comman= ds.

I suspect I'd sto= re yet another internal identifier, myself, but loosely store whatever make= s you get the right external behaviour. If UIDs work for you, I'd store= only UIDs and treat a "$" as if it were "UID $" as nee= ded,=C2=A0for example. But remember it's never a simple string substitu= tion - otherwise "$" would fail if the saved set were to contain = no messages.

As for whether people use this in cli= ents, I don't know - it's been fairly esoteric until now, but IMAP4= rev2 might change this. It's very useful for "Mark all as" fr= om a search output for online clients, but there aren't many of those a= round anymore.

Dave.
--0000000000002fc5be05bd415ec9-- From nobody Thu Mar 11 08:13:35 2021 Return-Path: X-Original-To: imapext@ietfa.amsl.com Delivered-To: imapext@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3C2533A127C for ; Thu, 11 Mar 2021 08:13:33 -0800 (PST) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -7.099 X-Spam-Level: X-Spam-Status: No, score=-7.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, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 i3XsIOJSGF3i for ; Thu, 11 Mar 2021 08:13:30 -0800 (PST) Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by ietfa.amsl.com (Postfix) with ESMTP id 5152B3A1274 for ; Thu, 11 Mar 2021 08:13:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1615479209; d=isode.com; s=june2016; i=@isode.com; bh=8JzFRLPbE2M9sIlyAllYsawRHl4dyQVgctJ/WO8mC8Y=; 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=fVDZ7z7IhV359P8Y/hCTlr7i7OdaiHzi0OCFo+HXeDwwMgXmi41F9Mu6j4Ve1d0Vb9OVGz QWB2bH9TqVSUXxkKJ+IKn6fTu2/wlJHBKHEvByKjHisYuHh69CEoEcFyo0lq1wqS50QUA7 m0eQYTmnQh+yosnjNoCfcOGXFalhSI8=; Received: from [192.168.0.5] (4e697ac1.skybroadband.com [78.105.122.193]) by waldorf.isode.com (submission channel) via TCP with ESMTPSA id ; Thu, 11 Mar 2021 16:13:28 +0000 To: Adrien de Croy Cc: "imapext@ietf.org" References: <40f8d9ec-2387-4e38-819d-fdb4407c5709@spark> <3089d87b-5884-44bf-8eb9-ef5d34f16756@spark> <23240094-4827-f85e-6ad5-6b22bc09905b@isode.com> From: Alexey Melnikov Message-ID: <7eee45ff-ae66-e25c-ae0b-533214c49f20@isode.com> Date: Thu, 11 Mar 2021 16:13:27 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="------------39E48282651526F40C7513B7" Content-Language: en-GB Archived-At: Subject: Re: [imapext] SEARCHRES RFC5182 X-BeenThere: imapext@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion of IMAP extensions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Mar 2021 16:13:33 -0000 --------------39E48282651526F40C7513B7 Content-Type: text/plain; charset=utf-8; format=flowed Content-transfer-encoding: quoted-printable Hi Adrian, On 10/03/2021 20:14, Adrien de Croy wrote: > Hi Alexey > > ------ Original Message ------ > From: "Alexey Melnikov" > > To: "Adrien de Croy" > > Cc: "imapext@ietf.org " > > Sent: 10/03/2021 11:07:25 pm > Subject: Re: [imapext] SEARCHRES RFC5182 > >> Hi Adrien, >> >> On 09/03/2021 23:21, Adrien de Croy wrote: >>> Hi Everyone >>> >>> I've been looking into this extension, but it has a number of=20 >>> problems and uncertainties in the spec especially: >>> >>> * in relation to storing results of ESEARCH extensions, it refers to=20 >>> them as messages). >> >> Can you elaborate/quote specific text which is confusing? >> > > > When the SAVE result option is combined with the MIN or MAX [ESEARCH] > =C2=A0 =C2=A0result option, and none of the other ESEARCH result options a= re > =C2=A0 =C2=A0present, the corresponding MIN/MAX is returned (if the search= result > =C2=A0 =C2=A0is not empty), but the "$" marker would contain a single mess= age as > =C2=A0 =C2=A0returned in the MIN/MAX return item. > > > It's not clear if $ is storing the result of the MIN, or something else. It is. > But I guess those are the same for MIN and MAX - the IDs. > $ only stores message IDs, not messages.=C2=A0 Maybe replace "contain a=20 > single message" with "refers to a single message" or "contains the=20 > message ID" Right. Dave has explained the intent well, so yes, I mean a message=20 reference. > > I guess I should have read it a few more times.=C2=A0 Maybe it's not so=20 > unclear. > Best Regards, Alexey --------------39E48282651526F40C7513B7 Content-Type: text/html; charset=utf-8 Content-transfer-encoding: quoted-printable

Hi Adrian,

On 10/03/2021 20:14, Adrien de Croy wrote:
Hi Everyone

I've been looking into this extension, but it has a number of problems and uncertainties in the spec=C2=A0es= pecially:

* in relation to storing results of ESEARCH extensions, it refers to them as messages).

Can you elaborate/quote specific text which is confusing?



When the SAVE result option is combined with the MIN or MAX [ESEARCH]
=C2=A0 =C2=A0result option, and none of the other ESEARCH result o= ptions are
=C2=A0 =C2=A0present, the corresponding MIN/MAX is returned (if th= e search result
=C2=A0 =C2=A0is not empty), but the "$" marker would contain a sin= gle message as
=C2=A0 =C2=A0returned in the MIN/MAX return item.


It's not clear if $ is storing the result of the MIN, or something else.
It is.
But I guess those are the same for MIN and MAX - the IDs.
$ only stores message IDs, not messages.=C2=A0 Maybe replace "contain a single message" with "refers to a single message" or "contains the message ID"
Right. Dave has explained the intent well, so yes, I mean a message reference.

I guess I should have read it a few more times.=C2=A0 Maybe it's not so unclear.

Best Regards,

Alexey

--------------39E48282651526F40C7513B7-- From nobody Tue Mar 16 11:31:21 2021 Return-Path: X-Original-To: imapext@ietfa.amsl.com Delivered-To: imapext@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D98A43A0D20 for ; Tue, 16 Mar 2021 11:31:19 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 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, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=curecanti.org 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 DWKP8AYP1rVe for ; Tue, 16 Mar 2021 11:31:18 -0700 (PDT) Received: from smtp.centurylink.net (mail.onyx.syn-alias.com [206.152.134.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6102A3A0D1C for ; Tue, 16 Mar 2021 11:31:18 -0700 (PDT) Feedback-ID: dfw:ctl:res:onyx X-Authed-Username: bXNsdXNhcnpAY2VudHVyeWxpbmsubmV0 Authentication-Results: smtp02.onyx.dfw.sync.lan header.DKIM-Signature=@curecanti.org; dkim=pass Authentication-Results: smtp02.onyx.dfw.sync.lan smtp.user=mslusarz@centurylink.net; auth=pass (LOGIN) Received: from [75.166.41.212] ([75.166.41.212:39580] helo=cascade.curecanti.org) by smtp.centurylink.net (envelope-from ) (ecelerity 3.6.25.56547 r(Core:3.6.25.0)) with ESMTPSA (cipher=DHE-RSA-AES256-GCM-SHA384) id 05/04-09829-379F0506; Tue, 16 Mar 2021 14:31:15 -0400 Received: from [172.18.7.33] (c-73-78-74-179.hsd1.co.comcast.net [73.78.74.179]) (Authenticated sender: slusarz) by cascade.curecanti.org (Postfix) with ESMTPSA id B2F1AE0046 for ; Tue, 16 Mar 2021 12:31:14 -0600 (MDT) DMARC-Filter: OpenDMARC Filter v1.3.2 cascade.curecanti.org B2F1AE0046 Authentication-Results: porcupineracetrack.curecanti.org; dmarc=none (p=none dis=none) header.from=curecanti.org Authentication-Results: porcupineracetrack.curecanti.org; spf=none smtp.mailfrom=slusarz@curecanti.org DKIM-Filter: OpenDKIM Filter v2.11.0 cascade.curecanti.org B2F1AE0046 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=curecanti.org; s=default; t=1615919474; bh=hQlC8qUjZv0sUX/w9Zc8iL2lCAiKLqS3mr9kg8K8XsE=; h=Subject:To:References:From:Date:In-Reply-To:From; b=fIVYizakbEhzfQUA9oEWCE8L0B6vq5hgBW89sI66Vrmy2C9d8C5fgLU+QyQt7J7BQ eGsTjF2B4szGzinCbD4hgDkXSipnoFuKK5ny71yQ2BIP6HyiM2d9u6kpvfTMmNbFlY Qc40BZes7CFwHf8vTEJXZBy3wWttXEG43bylpFEY= To: imapext@ietf.org References: <40f8d9ec-2387-4e38-819d-fdb4407c5709@spark> <3089d87b-5884-44bf-8eb9-ef5d34f16756@spark> <23240094-4827-f85e-6ad5-6b22bc09905b@isode.com> From: Michael Slusarz Message-ID: Date: Tue, 16 Mar 2021 12:31:15 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------608058AE385E9922A29F2EDC" Content-Language: en-US X-Vade-Verditct: clean X-Vade-Analysis: gggruggvucftvghtrhhoucdtuddrgeduledrudefvddgudduhecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfujgfpteevqfftpdevvffnpdfqfgfvnecuuegrihhlohhuthemuceftddunecunecujfgurhepuffvfhfhkffffgggjggtsegrtderredtfeejnecuhfhrohhmpefoihgthhgrvghlucfulhhushgrrhiiuceoshhluhhsrghriiestghurhgvtggrnhhtihdrohhrgheqnecuggftrfgrthhtvghrnhepjeekjeefieefieehueeivdetudejheeugfetjeehvdejhffhtdeuhfehuedtjedvnecuffhomhgrihhnpehrfhgtqdgvughithhorhdrohhrghenucfkphepjeehrdduieeirdeguddrvdduvddpjeefrdejkedrjeegrddujeelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepjeehrdduieeirdeguddrvdduvdenpdhmrghilhhfrhhomhepshhluhhsrghriiestghurhgvtggrnhhtihdrohhrghenpdhrtghpthhtohepihhmrghpvgigthesihgvthhfrdhorhhgne X-Vade-Client: CTL Archived-At: Subject: Re: [imapext] SEARCHRES RFC5182 X-BeenThere: imapext@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion of IMAP extensions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Mar 2021 18:31:20 -0000 This is a multi-part message in MIME format. --------------608058AE385E9922A29F2EDC Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit On 3/10/2021 1:14 PM, Adrien de Croy wrote: > ------ Original Message ------ > From: "Alexey Melnikov" > > To: "Adrien de Croy" > > Cc: "imapext@ietf.org " > > Sent: 10/03/2021 11:07:25 pm > Subject: Re: [imapext] SEARCHRES RFC5182 > >> >>> So my first question relates to whether I'm even wasting my time.  >>> The imapwiki shows very few servers support it, but are any clients >>> known to support it? >> I don't know the answer to this. Well, I did my small part towards improving awareness by including a SEARCHRES example in the PREVIEW spec :) https://www.rfc-editor.org/rfc/rfc8970.html#section-5-5 michael --------------608058AE385E9922A29F2EDC Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit
On 3/10/2021 1:14 PM, Adrien de Croy wrote:
------ Original Message ------
From: "Alexey Melnikov" <alexey.melnikov@isode.com>
To: "Adrien de Croy" <adrien@qbik.com>
Sent: 10/03/2021 11:07:25 pm
Subject: Re: [imapext] SEARCHRES RFC5182


So my first question relates to whether I'm even wasting my time.  The imapwiki shows very few servers support it, but are any clients known to support it?
I don't know the answer to this.

Well, I did my small part towards improving awareness by including a SEARCHRES example in the PREVIEW spec :)

https://www.rfc-editor.org/rfc/rfc8970.html#section-5-5

michael


--------------608058AE385E9922A29F2EDC--