[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