[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Sylpheed and mail client



Concerning the issue of Sylpheed not showing debian-user-digest messages
in their entirety, in some cases...

On Wed, 25 Dec 2002 14:23:31 +0000 Carlos Sousa wrote:
> On Wed, 25 Dec 2002 10:26:46 +0000 Colin Watson wrote:
> > Somebody who knows the details should file a bug on lists.debian.org,
> > then.
(...) 
> If anybody could send me, as an attachment, an example digest where this
> happens (Marc Shapiro, anyone?) I'll be happy to review the case, post
> my conclusions here and eventually file the bug.

Ok, folks, here it goes.

>From RFC-2046:

   The body must then contain one or more body parts, each preceded by
   a boundary delimiter line, and the last one followed by a closing
   boundary delimiter line.

   The boundary delimiter line is ... defined as a line consisting
   entirely of two hyphen characters ("-", decimal value 45) followed
   by the boundary parameter value from the Content-Type header field,
   optional linear whitespace, and a terminating CRLF.

   The boundary delimiter line following the last body part is a
   distinguished delimiter that indicates that no further body parts
   will follow.  Such a delimiter line is identical to the previous
   delimiter lines, with the addition of two more hyphens after the
   boundary parameter value.

   NOTE TO IMPLEMENTORS:  Boundary string comparisons must compare the
   boundary value with the beginning of each candidate line.  An exact
                                                              ^^^^^^^^
   match of the entire candidate line is not required; it is sufficient
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   that the boundary appear in its entirety following the CRLF.
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

In the debian-user-digest mail headers:

   Content-Type: multipart/digest; boundary="----------------------------"

So the boundary is a string of 28 hyphen characters. Which means the
boundary lines for the various parts should consist of 2+28 = 30
hyphen characters, and the closing boundary delimiter line should
consist of 2+28+2 = 32 hyphen characters, starting at the beginning of
the line. All this is in accordance with the RFC.

In the debian-user-digest body:

   ------------------------------ (30 hyphens)
   (digest index)
   ------------------------------ (30 hyphens)
   (message "1")
   ------------------------------ (30 hyphens)
      .
      .
      .
   ------------------------------ (30 hyphens)
   (message "last-1")
   ------------------------------ (30 hyphens)
   (message "last")
   -------------------------------- (32 hyphens)

In debian-user-digest Digest V2002 #1004, dated Thu, 26 Dec 2002
09:08:36 -0600 (CST), out of a total of 17 messages, Sylpheed shows
the first 10 messages plus a bit of the eleventh. This is the
relevant portion of the 11th message:

   PS: I post the walkthrough. Hope it will help other newbies :-)

   Exim with MySQL support using debian packages
   ---------------------------------------------

   Exim debian package (3.35) is compiled without the
   mysql support. Therefore, if you want to use

The dashed line above consists of 45 hyphens starting at the beginning
of the line. After parsing the first 32 hyphens, Sylpheed decides
to take the line as the closing boundary delimiter line, and doesn't
show anything beyond that. Sylpheed is in fact closely following
the RFC, as it states (requoting):

   An exact match of the entire candidate line is not required; it is
   sufficient that the boundary appear in its entirety following the CRLF.

Hope this homegrown bit of analysis makes it clear that the choice
of the boundary delimiter on the part of the list manager software
is indeed very poor, in that it is easy for any user to inadvertently
cause RFC-compliant email clients to fail the display of an entire
mail message. As a side note, out of the 5 digests I got for the purpose
of this analysis, 2 of them had this problem, so it's happening a lot.

Do we agree that a bug should be filed, then, against lists.debian.org?

-- 
Carlos Sousa
http://vbc.dyndns.org/



Reply to: