LINUX.ORG.RU
ФорумAdmin

SpamAssassin + CommuniGate через CGPSA (глюк Perl-а)


0

0

Уважаемые, подскажите, может сталкивался кто!

Установил Spamassassin в связске с CommuniGate через коммунигейтовский модуль CGPSA. Всплыла неприятная проблема. После проверки spamassassin-ом письма, написанного на русском, он его (точнее русский текст в нем) преобразует в какой-то мусор, напоминающий UTF-8, но им не являющийся. Клиент, получающий почту после обработки спамассассином, видит вместо русских букв пародию на UTF-8.

Говорят, это проблема связана с Perl 5.8.0 в Redhat. Насколько мне известно, такое может вызывать неверно установленная локаль при запуске spamassassin. Сам он является перловым скриптом, а перл 5.8.0 в Redhat-е воспринимает по умолчанию кодировку, как UTF-8. Но локаль в данном случае настроена верно - локаль при запуске spamassassin выставлена в ru_RU.cp1251.

Отследил такое вот сообщение: "Malformed UTF-8 character (unexpected end of string) at /var/CommuniGate/cgpsa line 1228." и попытался вылечить, вставив в cgpsa (тоже скрипт на Perl-е) строчку

setlocale("LC_ALL", "ru_RU.cp1251");

Не помогает, к сожалению.

Вобщем, зарылся я. Подскажите советом или добрым словом . Особая просьба откликнуться гурам Перла !


Note for Perl 5.8 Users (incl Red Hat 8)
----------------------------------------

Perl 5.8 now uses Unicode internally by default, which causes trouble for
SpamAssassin (and almost all other reasonably complex pieces of perl
code!).

We've worked around this in most places, as far as we know, but there may
still be some issues. In addition, there is a speed hit, which it would
be nice to avoid.

Setting the LANG environment variable before any invocation of
SpamAssassin sometimes seems to help fix it, like so:

export LANG=en_US

Notably, the LANG setting must not include "utf8". However, some folks
have reported that this makes no difference. ;)

anonymous
()
Ответ на: комментарий от anonymous

Читал. Не первый день рою. А что я, к примеру, сделал, задав в начале исполняемого скрипта cgpsa, который, как я понимаю, и запускает spamassassin, строку setlocale("LANG", "en_US"); ?

НЕ ПОМОГАЕТ почему-то

Radja
() автор топика
Ответ на: комментарий от anonymous

Измени локаль на koi8-r! В CommuniGate выруби utf и поставь koi8-r

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.