Re: [Extra] Barry Leiba's Discuss on draft-ietf-extra-imap-fetch-preview-03: (with DISCUSS and COMMENT)

Barry Leiba <> Sun, 02 June 2019 17:33 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 5598F120161; Sun, 2 Jun 2019 10:33:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.7
X-Spam-Status: No, score=-1.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.198, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id NxEFzdmOKflR; Sun, 2 Jun 2019 10:33:29 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id A52C312015B; Sun, 2 Jun 2019 10:33:29 -0700 (PDT)
Received: by with SMTP id l21so1865622ita.2; Sun, 02 Jun 2019 10:33:29 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rAqHyYRRpxO7Uo7V2dVD/ubN7LN6JAUhqGunE5JJ8Q4=; b=tW+AJBm4UPNIzh5EvJu3m9pfzhtI1GGADUbSLG8KoGogsSBoPW6xsk/d4Kes+sboTz DnQWtlUVtY2dXM4qlF71aY1w3EsIT7ZCH0OThH+V+KR1YG1n39Gx4sHMcoaWTXkb0Q3y /wbwCqtthkuloHnuB8d5EY5WUqEmEo71RHx3GlE+H/vh0Ltryv/crFSgm2kuKTQ/Km5u ymJ6tKMv1UlRRtcHQS6tgoKor9uFidR1S7vmysMtk/iTEqtN/QMwLTCRlVeCeIfUVeFY aGvtRUWv2/Pfkplt3Ge+KPIvk3C/1YfEU390VoNo036Deqc1ozME8Ko3q5CwUQ9WTLTG Uurw==
X-Gm-Message-State: APjAAAVmZOlImT0I/BDVQMTct74jHKI980dDTWztDi7laWFH3KHeokEK 1O9LFzwOuQAs6XKNRpGfXLom7gSLyzsnPlYXsDw=
X-Google-Smtp-Source: APXvYqzdHtQmCzNf1h1oeqZh/aEUn06D+MdnbfQdbvTqxM12uOOWRbK71pWgazuAUjAsLudYX151kxO8pXyVY6HBdqc=
X-Received: by 2002:a24:a088:: with SMTP id o130mr13987508ite.86.1559496808490; Sun, 02 Jun 2019 10:33:28 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <>
In-Reply-To: <>
From: Barry Leiba <>
Date: Sun, 2 Jun 2019 13:33:17 -0400
Message-ID: <>
To: Michael Slusarz <>
Cc: The IESG <>,, Bron Gondwana <>,
Content-Type: text/plain; charset="UTF-8"
Archived-At: <>
Subject: Re: [Extra] Barry Leiba's Discuss on draft-ietf-extra-imap-fetch-preview-03: (with DISCUSS and COMMENT)
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: Sun, 02 Jun 2019 17:33:31 -0000

I think we're still in significant disagreement here; I'd like others
from the working group to comment, and see if that can move us in one
direction or the other.

> > > I'll start with providing a (future) real-world example, and why this
> > > behavior exists in its present form.  Given a hypothetical future
> > > algorithm "IMAGE" (generate image/jpeg preview if image data exists in
> > > message), I issue this preview command:
> > >
> > >
> > > This is asking the server: provide me an image preview of the message,
> > > but ONLY if 1) the message actually contains image information and 2)
> > > that image information is already generated or can be generated very
> > > quickly.  Otherwise, fall back to FUZZY generation.
> >
> > Hm.  That really seems like a contrived example.  How would the client
> > software possibly know whether there's useful information in the
> > image, or whether the information in the accompanying text is more or
> > less important?  Suppose I have two messages:
> >
> > 1. text/plain that basically says nothing; image/jpeg that has a
> > diagram that explains everything
> >
> > 2. text/plain that has the entire real content of the message;
> > image/jpeg of the senders company logo
> >
> > It's pretty clear from that explanation that for message 1 I want some
> > sort of description of the image and for message 2 I want a preview of
> > the text.  But how would the client software know that, and,
> > therefore, know what to ask for?
> Is that what a typical received message looks like?  To me, that looks like the edge case.

It's not the "typical" message, but I don't think it's an edge case
either.  I do often get messages where the only significant content is
in an image.  (I've tried to dissuade those responsible from sending
things that way, but they persist.)  So, no, I wouldn't call it an
"edge case" either.  And even if it were, that's not really the point;
see below.

> Seems that a server could figure out (through experience) when image
> preview data should be calculated or ignored.  Image size, MIME
> structure information, MIME order, etc. could all be used to reach some
> sort of 95% accuracy threshold.  Maybe that doesn't happen day 1 of
> implementation, but a competitive, reactive server implementation will
> work on this.
> The same issue exists for text previews, FWIW.  What about a text/plain
> + text/html alternative message, where text/plain is "Please click on
> this URL to view the text part", and the text/html part is empty text
> (it's a single image link).  A server can be programmed to be smart
> enough to ignore that part re: preview.
> As written, we allow a server to be given the latitude to figure these
> kind of issues out.  Closing down that opportunity because it might be
> a difficult logical problem isn't the right approach from my view.

I note that in your response you say "server" four times, at least
once per paragraph, and "client" never.  But my point (see above) was,
"But how would the client software know that, and, therefore, know
what to ask for?"  These are things a *client* is requesting; how does
the client know whether to request that the preview be preferentially
done on the image or on the text?  I contend that it doesn't, and
can't, and that, therefore, it's strange to expect it to ask, and
strange to say that the server has to take the client's "priority
decision" into account.

I'm still looking for a real use case where the *client* is the entity
that's better suited to asking for any specific action with respect to
a message preview.

> > Apart from that, if we're going to do any sort of text-based preview
> > of an image, I would think we'd just say that when FUZZY is applied to
> > an image, that's what it does.
> FUZZY is explicitly defined as text only output though, since that's generally mapping
> what clients already do.

Well, but saying, "That's the way it works now," isn't really the
point.  We need to be looking at how we *want* this to work going
forward, and I think that having the *server* decide what the best way
is to give a preview of a message is the right answer.  And if that
means that the server decides to make a preview from the text/plain
part, the text/html part, the application/pdf part, or the image/jpeg
part (perhaps using OCR on the image), then I think that's fine.
FUZZY is explicitly defined as text only, only because that's how
we've defined it so far.

> > > I find that use-case plausible, albeit not something useful given the
> > > current landscape of a single algorithm.  The alternative would be to
> > > have to send PREVIEW algorithms one at a time, non-pipelined, which is
> > > precisely the kind of inefficient client/server interaction this
> > > extension is trying to minimize.
> >
> > We disagree on the plausibility.  Realistically, I can't think of
> > *any* other plausible preview algorithms that a *client* might ask for
> > without user interaction.  The most I can see is something about how
> > to apply FUZZY to non-text media types.
> Our UI client does "virtual attachment view", that shows graphical representations of all
> attachment data within messages within a mailbox, so PREVIEW is perfectly suited for
> that task.  (We currently have to do the preview conversion via a proprietary plugin.)

I don't understand this: this extension gives one preview for the
message, not separate previews for different message parts.  It looks
like you're talking about showing a graphic representation of the
message structure with each part having a preview.  Can you post a
screen capture of what you're talking about, showing how PREVIEW

> > But I'd still like to see someone give a good argument for a case
> > where having a client ask for multiple algorithms to be applied could
> > really be useful and practical.

This comment of mine still stands.  Please, EXTRA working group, join
the discussion.