Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
Newly introduced function left parts of headers and message body blank if quoted printable component is present. If I remove the patch, I
@pdontthink: I haven't set user accounts to any language, I don't even know how to do that. My config_local.php is empty (I suspect that matters), and my own account (that experiences the error), language is set to English.
The output I get from configtest.php is in http://pastebin.com/cYawxzzY .
seems I had simillar problem, some email headers and contents were missing or displayed only partially.
I've managed to work it around, by patching the new function sm_encode_html_specialhars() in functions/strings.php. I don't know whether my patch is correct , so use with care. For me it works well with utf-8 settings in $default_charset
Update: the patch is currently marked as invalid.
Sorry for previous post, I've sent the patch here:
@ptomulik thanks for looking into it, but the solution is not to hard-code character sets. This will break installations/users that use non iso-8859-1.
The problem is that quoted-printable strings have their own encodings built-in, which need to be respected when decoded. Please test the attached patch named quoted_printable_fix-1.4.x.diff --- A patch for SM 1.5.2 is still needed (I have run out of time for now).
SM 1.4.x Fix for HTML encoding of quoted printable strings
Toth Attila MD
I've time to do some testing.
I've tried 1.4.23-SVN20130612 and applied your quoted_printable patch. I used PHP-5.4.16 for the SVN version. No matter what encoding I've specified in the config file (iso-8859-1 or utf-8), the error persisted.
It was also interesting to see these messages in the log while testing:
"apache2: PHP Warning: htmlspecialchars(): charset `iso-8859-2' not supported, assuming utf-8 in /var/www/localhost/htdocs/squirrelmail/functions/strings.php on line 1508"
There were a bunch of them.
In the mean time, 1.4.22 with PHP-5.3.26 displayed the missing fields in the correct manner.
I also tried to revert your patch without any effect.
Moreover, I also tried to hardcode the encoding as it was suggested by Pawel, but the symptoms remained and the Warnings kept accumulating in the log.
this patch is not enough, maybe you should try these:
you may try to first apply quoted_printable_fix2-1.4.x.diff and then eventually add also i18n-encodings-patch.diff. If you have translation plugin installed for language which is ISO-8859-2 or ISO-8859-8, you may need to experiment with encodings in locale/ll_LL/setup.php.
As I implied before, we will not accept a patch like this. We already have code that converts charsets without so many assumptions, but we won't use that here, either, as it is largely unnecessary and much too costly. My patch with some massaging for incompatible charsets is probably the best that can be done.
I've applied quoted_printable_fix-1.4.x.diff, It doesn't help, still missing parts of messages and headers on mail list. I use pl_PL locale (by default, this uses iso-8859-2 charset).