Уважаемые гости и пользователи форума!
Чтобы видеть ссылки на форуме - надо зарегистрироваться и иметь 1 пост на форуме. Для этого есть КУРИЛКА и там тема Здрасти.

Кодировка в отчетах Spamassassin

Раздел для новичков и не только. Если не знаете где задать свой вопрос, не стесняйтесь, пишите здесь. Только, пожалуйста, правильно его сформулируйте :-) .

Модераторы: rewuxiin, kulia

Правила форума
Условием использования нашего форума, является соблюдение настоящих Правил форума.

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам, а вы рискуете получить предупреждение.
keeper
Сообщения: 6
Зарегистрирован: 14 окт 2014, 13:26

Кодировка в отчетах Spamassassin

04 фев 2015, 14:03

Добрый день.

Подскажите куда копать в настройках Spamassasin (или amavis)

Получаю отчет о спаме в не читаемой кодировке
► Показать
Хотелось бы видеть область отчета Content preview: в нормальной кодировке.
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

04 фев 2015, 22:05

keeper писал(а):Получаю отчет о спаме в не читаемой кодировке
Вариант решения проблемы:
1. Приводим все к UTF. В файле local.cf прописываем

Код: Выделить всё

normalize_charset 1
или

Код: Выделить всё

ok_locales      ru en
report_charset   utf-8
2. Правим файл Mail/SpamAssassin/Plugin/Check.pm после

Код: Выделить всё

use warnings;
добавляем

Код: Выделить всё

use utf8;
use POSIX qw (locale_h);
POSIX::setlocale(&POSIX::LC_CTYPE,'ru_RU.UTF-8');
keeper
Сообщения: 6
Зарегистрирован: 14 окт 2014, 13:26

05 фев 2015, 10:42

SinglWolf, попробовал изменить local.cf

Код: Выделить всё

normalize_charset 1
результат

Код: Выделить всё

root@mailserver:~# spamassassin --lint –D
Фев  5 08:37:57.272 [54526] warn: config: regexp for rule __RU_CATER_3_KOI8 always matches due to '||'
Фев  5 08:37:57.391 [54526] warn: config: regexp for rule __RU_CATER_3_UTF8 always matches due to '||'
Фев  5 08:37:57.508 [54526] warn: config: regexp for rule __RU_CATER_3_WIN1251 always matches due to '||'
Фев  5 08:37:58.077 [54526] warn: config: normalize_charset requires Encode::Detect
Фев  5 08:37:58.077 [54526] warn: config: SpamAssassin failed to parse line, "1" is not valid for "normalize_charset", skipping: normalize_charset 1
Фев  5 08:38:06.832 [54526] warn: lint: 5 issues detected, please rerun with debug enabled for more information
почему ругается на normalize_charset 1 ? Что не так делаю?

Эти параметры проглотил нормально

Код: Выделить всё

ok_locales      ru en
report_charset   utf-8
Жду спама :)
keeper
Сообщения: 6
Зарегистрирован: 14 окт 2014, 13:26

05 фев 2015, 12:06

SinglWolf, в общем ни один из вариантов не прокатил.

может Amavis виноват?
Нашел в недрах amavis /etc/amavis/en_US/charset

Код: Выделить всё

# This is charset for en_US messages.
# If you are creating new messages, use 'iconv -l' to get possible encodings.
ascii   # or iso-8859-1
ignored lines after first one
пробовал менять ascii на utf-8
тоже без результатно.

Может надо свои шаблоны положить как в каталоге /etc/amavis/en_US ?
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2618
Зарегистрирован: 23 янв 2012, 22:11

05 фев 2015, 13:09

keeper, надо разбираться на месте. У меня нет времени сейчас, увы. Тестовый сервер занят под другую задачу. *PARDON*
keeper
Сообщения: 6
Зарегистрирован: 14 окт 2014, 13:26

06 фев 2015, 10:35

Все, я в тупике...
Если найдете для меня время, буду признателен.


Есть одна мысль. Сильно не пинайте, сам понимаю возможно несу бред.
Подозреваю, что установлено несколько версий Perl и используется не та версия которая нужна

есть каталоги
/usr/share/perl5
/usr/share/perl/5.14.2

в каталоге /usr/share/perl/5.14.2 нет папки /Mail/SpamAssassin она находится в каталоге /usr/share/perl5/

Как узнать какую версию perl использует Spamassassin?


В /usr/sbin/spamd прописано

Код: Выделить всё

use lib '/usr/share/perl5';                   # substituted at 'make' time

По поводу ошибки принятия параметра

Код: Выделить всё

normalize_charset 1
не хватало perl модуля Encode::Detect

Код: Выделить всё

apt-get -y --force-yes -f install libencode-detect-perl
ошибки теперь нет, но проблема осталась, отчеты кривые.
keeper
Сообщения: 6
Зарегистрирован: 14 окт 2014, 13:26

10 фев 2015, 10:33

Есть подозрение, что нет каких-то перл модулей (либо не те).
Можем как-то сравнить конфигурации?
keeper
Сообщения: 6
Зарегистрирован: 14 окт 2014, 13:26

13 фев 2015, 13:01

После долгих тестов все таки выяснил кто виноват.
Попробовал подсунуть письмо SA и посмотрел, что на выходе. Там все ОК. Отчет SA формирует в правильной кодировке. А вот amavis формирует квитанцию уже с ошибкой. У меня работает версия amavisd-new 2.7.1-2.
Создал собственные шаблоны для отчетов amavis в кодировке UTF-8. Текст который явно прописан в квитанции на кириллице приходит правильный, а вот полученные данные от SA уже искажены
вот пример

Код: Выделить всё

Content type: Spam 

Internal reference code for the message is 17523-01/mK0rQjeno9Ii

First upstream SMTP client IP address: [209.85.215.43] mail-la0-f43.google.com
According to a 'Received:' trace, the message apparently originated at:
  [209.85.215.43], 

Return-Path: <user@gmail.com>
From: Vladimir <user@gmail.com>
Message-ID:
  <CAGQiP3H_VX-A_p4bAoGkHFfRtuL9tHXUi+EYixnWT=+FVrmG+A@mail.gmail.com>
Subject: проверка на спам

Not quarantined.

The message WAS NOT relayed to:
<admin@domain.ru>:
   250 2.7.0 Ok, discarded, id=17523-01 - spam

Отчет антиспама (Spamassassin):
Spam detection software, running on the system "mailserver.domain.local", has
identified this incoming email as possible spam.  The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email.  If you have any questions, see
@@CONTACT_ADDRESS@@ for details.

Содержимое письма:  Здравствуйте, Admin. XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
   [...] 

Детализация анализа:   (1001.4 points, 5.0 required)

Фраза "Отчет антиспама (Spamassassin):" прописана в шаблоне template-spam-admin.txtявным образом, поле Subject выглядит вот так:

Код: Выделить всё

[? %j |#|[:wrap|78||  |Subject: [:mime2utf8|[:header_field|Subject|100]]]]
Похоже проблема в макросе mime2utf8 (и вобще с amavis).


С проблемой разобрался.
Оказалось amavis ломает кодировку.
Чтоб письма с отчетом SA приходили в кодировке UTF-8 надо конвертнуть шаблоны из каталога en_US. Я создал свой каталог ru_RU и в него сконвертировал файлы шаблонов

Код: Выделить всё

iconv -c -f iso-8859-1 -t UTF-8 ./en_US/template-spam-admin.txt > ./ru_RU/template-spam-admin.txt
Файлы шаблонов:

Код: Выделить всё

template-auto-response.txt
template-dsn.txt          
template-problem-feedback.txt
template-release-quarantine.txt
template-spam-admin.txt        
template-spam-sender.txt       
template-virus-admin.txt       
template-virus-recipient.txt   
template-virus-sender.txt
Указываю amavis в файле /etc/amavis/conf.d/30-template_localization, что шаблоны в папке ru_RU

Код: Выделить всё

read_l10n_templates('ru_RU', '/etc/amavis');
в файле charset указал что шаблоны в кодировке UTF-8, если не указывать amavis будет ругаться на кириллицу при запуске

Если в /etc/amavis/conf.d/30-template_localization выставляю параметр

Код: Выделить всё

$bdy_encoding = 'iso-8859-1';
То письма приходят с заголовком

Код: Выделить всё

Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
И кодировку письма нужно выставлять руками на UTF-8 и вуаля текст читабелен.
Если меняю параметр на

Код: Выделить всё

$bdy_encoding = 'utf-8';
или любой другой из кириллических, то кодировка в письме ломается. Т.е. пиьсмо приходит с правильным заголовком и почтовый клиент правильно его определяет, но попытки поменять руками кодировку ни к чему не приводят, видимо кодировка совсем ломается после $bdy_encoding.

Вот такая блин засада :(

Вернуться в «Вопросы новичков»