[rt-users] Re: Bad SMTP Headers? Seems to be a Template.pm bug

Jesse Vincent jesse at bestpractical.com
Mon Mar 18 10:28:20 EST 2002


You might want to look at RT 2.0.12, which solved this problem 
in the "right" way, by moving over to using the MIME parser
we use elsewhere, rather than the broken code that was there 
before. 

	-j


On Mon, Mar 18, 2002 at 12:02:23PM +0100, Rafael Corvalan wrote:
> Hello,
> 
> I have had from a long time some errors like:
> Bad RFC822 field name '  Script And Config File'
> in the RT log file. As I've seen in the mailing list archives, I'm not
> alone.
> 
> After some debugging, it appears that the file Template.pm seems not to
> be RFC822 compliant (correct me if I'm wrong) regarding the folding of
> the headers.
> In fact, the RFC822 (and also do so the RFC2822 that obsolets the 822)
> says, in chapter 3.1.1:
> 
> =====================================
>      3.1.1.  LONG HEADER FIELDS
> 
>         Each header field can be viewed as a single, logical  line  of
>         ASCII  characters,  comprising  a field-name and a field-body.
>         For convenience, the field-body  portion  of  this  conceptual
>         entity  can be split into a multiple-line representation; this
>         is called "folding".  The general rule is that wherever  there
>         may  be  linear-white-space  (NOT  simply  LWSP-chars), a CRLF
>         immediately followed by AT LEAST one LWSP-char may instead  be
>         inserted.  Thus, the single line
> 
>             To:  "Joe & J. Harvey" <ddd @Org>, JJV @ BBN
> 
>         can be represented as:
> 
>             To:  "Joe & J. Harvey" <ddd @ Org>,
>                     JJV at BBN
> =====================================
> 
> Note that the RFC 2822 is a little more clear.
> 
> 
> I made a very little change in Template.pm that corrected the problem
> (tested since 2 weeks). The diff is based on Template.pm v1.2 (as per
> what the file header says: 
> # $Header: /raid/cvsroot/rt/lib/RT/Template.pm,v 1.2 2001/11/06 23:04:14
> jesse Exp $).
> 
> Here is the diff:
> 
> [root at zorro RT]# diff -C 4 Template.pm.orig Template.pm
> *** Template.pm.orig    Wed Mar  6 11:12:35 2002
> --- Template.pm Mon Mar 18 11:31:10 2002
> ***************
> *** 288,295 ****
> --- 288,296 ----
> 
>     $self->{'MIMEObj'}->attach(Data => $body);
> 
>     if ($headers) {
> +     $headers =~ s/\n[ \t]//mg;
>       foreach $header (split(/\n/,$headers)) {
>         (my $key, my $value) = (split(/: /,$header,2));
>         chomp $key;
>         chomp $value;
> 
> ============================
> 
> So, I just remove any carriage return followed by a tab or space. This
> is, from my point of view, RFC2822 compliant, which says about
> unfolding:
> 
>    The process of moving from this folded multiple-line representation
>    of a header field to its single line representation is called
>    "unfolding". Unfolding is accomplished by simply removing any CRLF
>    that is immediately followed by WSP.
> 
> 
> Hope it helps, and sorry if I'm wrong, but I'm not an SMTP specialist...
> 
> Rafael
> 

-- 
http://www.bestpractical.com/products/rt  -- Trouble Ticketing. Free.




More information about the rt-users mailing list