URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 79835
[ Назад ]

Исходное сообщение
"Amavisd-new Spamassassin Регистр русские буквы"

Отправлено onu , 15-Апр-08 18:06 
Здравствуйте!
Есть почтовый шлюз FreeBSD на котором крутится Postfix,Amavisd-new,SpamAssassin.

Проблема 1:
----------------
В правилах SpamAssassin не работают регулярные выражения с регистронезависимым поиском русскими буквами, например:
/реклама/i
Поискав информацию по этому вопросу, нашел решение - добавить в EvalTests.pm и PerMsgStatus.pm :

use locale;
use POSIX 'locale_h';
setlocale(LC_ALL, "ru_RU.KOI8-R");

Однако модуля EvalTests.pm в сисстеме не оказалось, а добавление в PerMsgStatus.pm ничего не дало.
---local.cf---
lang ru
normalize_charset        0
ok_locales               en ru
ok_languages             en ru
report_charset koi8-r

Проблема 2:
----------------
SpamAssassin отправляет отчеты, в которых Content preview: (переменная _PREVIEW_) возвращает знаки вопроса, например:

Content preview:  ?????????? ????? ? ?????????? ??????? ? 2008 ???? ??????????
   ????? ? ?????????? ??????? ? 2008 ???? ??????? 26 ????? 2008 ?. ???? ????????:
   (495)506--1824 ? 509--2046 ??????? ?????????:

---amavisd.conf---
$hdr_encoding = 'koi8-r';  # header field bodies charset
$bdy_encoding = 'koi8-r';  # notification body text charset

SpamAssassin version 3.2.3
running on Perl version 5.8.8
amavisd-new-2.6.0-rc1 (20080319)
FreeBSD 6.3-RELEASE

locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=


Где копать?



Содержание

Сообщения в этом обсуждении
"Amavisd-new Spamassassin Регистр русские буквы"
Отправлено onu , 17-Апр-08 17:06 
up

"Amavisd-new Spamassassin Регистр русские буквы"
Отправлено anonymous , 17-Апр-08 19:06 
1) Испрасить файл /usr/local/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/Check.pm

1a)добавить

use utf8;

2a)Факультативно туда же:

use POSIX qw (locale_h);
die "Could not set locale ru_RU.UTF-8" unless setlocale(LC_CTYPE,'ru_RU.UTF-8');
die "Could not set locale ru_RU.UTF-8" unless setlocale(LC_COLLATE,'ru_RU.UTF-8');

2) В файле local.cf указать

normalize_charset 1

3) Регулярные выражения писать в кодировкe UTF-8

Свидетельствую, что у меня работают регулярные выражения с русскими буквами