Tracker: Bugs

5 Unencoded 8bit characters in email headers - ID: 1849410
Last Update: Settings changed ( pdontthink )

SM produces unencoded 8bit characters in "Date:" and "Received:" header.
The zonename (In this case "Mitteleuropäische Zeit") is not being
encoded.

SM: 1.4.11
OS: Windows 2003 Server German
PHP: 5.2.4


ZerzaDha ( zerzadha ) - 2007-12-12 15:36

5

Closed

Fixed

Nobody/Anonymous

Message Headers

None

Public


Comments ( 6 )

Date: 2009-04-01 20:41
Sender: pdontthinkProject AdminAccepting Donations

Thanks for everyone's help. This is now fixed in our development and
stable streams.


Date: 2008-02-24 08:30
Sender: bebboAccepting Donations


Fix the "function timezone()" in Deliver.class.php:

< $zonename = '('.strftime('%Z').')';
< $result = sprintf ("%s%02d%02d %s", $sign, $diff_hour,
$diff_minute,
< $zonename);

> $result = sprintf ("%s%02d%02d", $sign, $diff_hour,
$diff_minute);

This results into dates like "Date: Sat, 23 Feb 2008 22:44:14 +0100" which
is perfect. The time zone is indicated by the "+0100". See also RFC822
5.1.

Refering the problem to PHP or windows is not enough: If you invoke a
method you must be able to handle the result properly - always.

Fix this please.






Date: 2007-12-20 12:31
Sender: zerzadha


You're right, just encoding doesn't cut it.
I had a closer look at the RFC822 and RFC2822. Could it be teh the header
is non compliant as it is even with only "CET".
As i read it you have the option to give the time delta or one of zone
items listed in the RFC, but not both. Maybe just remove the zonename?


Date: 2007-12-20 10:37
Sender: kinkProject AdminAccepting Donations


I think this is related to the output of the %Z string formatting under
Windows. For some reason Windows will return a full timezone representation
in some circumstances. We may be able to change this but that would require
some testing of course.

I cannot just endode Mitteleuropaeische Zeit because this would still
generate a header that is not RFC 822 compliant.


Date: 2007-12-17 12:01
Sender: zerzadha


Well, "Mitteleuropäische Zeit" is a perfectly valid name for the
timezone. CET or MEZ are just abbreviations.
Of course is does get that timezone name from the OS. It is still in
SquirrelMails responsibility to make the SMTP header comply to the RFC
standard, meaning to properly encode the stuff you write in there no matter
where you get that information from.
Also this is trivial. Just "encodeHeader()" the zonename.


Date: 2007-12-16 16:03
Sender: kinkProject AdminAccepting Donations


SquirrelMail does not set that string itself - it probably gets wrong
timezone information from somewhere (the operating system?). The zone you
indicated must be written as "CET" not "Mitteleuropäische Zeit".


Attached File

No Files Currently Attached

Changes ( 8 )

Field Old Value Date By
close_date - 2009-04-01 20:41 pdontthink
status_id Open 2009-04-01 20:41 pdontthink
resolution_id Invalid 2009-04-01 20:41 pdontthink
close_date 2007-12-16 16:03 2007-12-20 10:37 kink
status_id Closed 2007-12-20 10:37 kink
status_id Open 2007-12-16 16:03 kink
close_date - 2007-12-16 16:03 kink
resolution_id None 2007-12-16 16:03 kink