Наверх
Проверка спам-фильтра.

Для того, чтобы проверить работу фильтра в тестовом режиме, можно поступить так (особенности использования специальных символов в тестовом режиме можно посмотреть здесь) :

1. Проверяем специальные преобразования.
/usr/sbin/sendmail -bt
> /map SPAM1 1_2_3_4
В ответ вы должны получить:
> map_lookup: SPAM1 (1_2_3_4) returns @MATCH (0)
Выйти из тестового режима можно через Ctrl-D.
А можно поступить и так, если нужно проверить много соответствий:
создаем file1, в который записываем все проверяемые комбинации:
/map SPAM0 tsalenko
/map SPAM1 1_2_3_4
/map SPAM2 sex
/map SPAM3 12345
/map SPAM4 123456.34567-ashdf.578668
/map ChSb Workshop invitation
/map ChSbVIRAvron Fwd: Re: Admission procedure
/map ChSbVIRKlez A IE 6.0 patch
/map ChSbSpam language center
/map ChSbSpam toefl
/map ChSbSpam I.love you
/map ChSbSpam2 DVD for you
/map ChSbRuSpam5 Путешествуйте вместе с нами!
/map ChSbRuSpam6 Елки-палки оптом!

Затем набираем в командной строке:
/usr/sbin/sendmail -bt <file1 >file2

Результаты смотрим в file2:
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> map_lookup: SPAM0 (tsalenko) returns @MATCH (0)
> map_lookup: SPAM1 (1_2_3_4) returns @MATCH (0)
> map_lookup: SPAM2 (sex) returns @MATCH (0)
> map_lookup: SPAM3 (12345) returns @MATCH (0)
> map_lookup: SPAM4 (123456.34567-ashdf.578668) returns @MATCH (0)
> map_lookup: ChSb (Workshop invitation) returns @CATCHED (0)
> map_lookup: ChSbVIRAvron ( Fwd: Re: Admission procedure) returns @CATCHED (0)
> map_lookup: ChSbVIRKlez (A IE 6.0 patch) returns @CATCHED (0)
> map_lookup: ChSbSpam (language center) returns @CATCHED (0)
> map_lookup: ChSbSpam (toefl) returns @CATCHED (0)
> map_lookup: ChSbSpam (I.love you) returns @CATCHED (0)
> map_lookup: ChSbSpam2 (пробелDVD for you) returns @CATCHED (0)
> map_lookup: ChSbRuSpam5 (Путешествуйте вместе с нами!) returns @CATCHED (0)
> map_lookup: ChSbRuSpam6 (Елки-палки оптом!) returns @CATCHED (0)
Внимательно смотрим, в каждой ли строке есть признак того, что соответствие установлено ( в
данном примере признаком этого служат слова MATCH или CATCHED, указанные во флаге -a в специальном преобразовании)

2. Проверяем, правильно ли срабатывают наши наборы правил перезаписи sendmail -
Slocal_check_mail и SCheck_Subject:
Создаем file1:
Local_check_mail tsalenko@male.ru
Local_check_mail yourastrolog@mail.ru
Local_check_mail 12345
Local_check_mail 123.345.abcd.45-ry
Check_Subject Invitation to workshop "Chemistry-2003"
Check_Subject Avril Lavigne - the best
Check_Subject Please see - Klez removal tool
Check_Subject Only for $100 !
Check_Subject New DVD ...
Check_Subject Консультации для дистрибьютеров
Check_Subject Покупка-продажа елок-палок!

/usr/sbin/sendmail -bt "<"file1 ">"file2
Смотрим результат :
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter "<"ruleset">" "<"address">"
> Local_check_mail input: tsalenko @ male . ru
canonify input: tsalenko @ male . ru
Canonify2 input: tsalenko < @ male . ru >
Canonify2 returns: tsalenko < @ male . ru . >
canonify returns: tsalenko < @ male . ru . >
Parse0 input: tsalenko < @ male . ru . >
Parse0 returns: tsalenko < @ male . ru . >
Local_check_mail returns: OK

> Local_check_mail input: yourastrolog @ mail . ru
canonify input: yourastrolog @ mail . ru
Canonify2 input: yourastrolog < @ mail . ru >
Canonify2 returns: yourastrolog < @ mail . ru . >
canonify returns: yourastrolog < @ mail . ru . >
Parse0 input: yourastrolog < @ mail . ru . >
Parse0 returns: yourastrolog < @ mail . ru . >
Local_check_mail returns: $# error $: 553 SPAM2 is not wanted !

> Local_check_mail input: 12345
canonify input: 12345
Canonify2 input: 12345
Canonify2 returns: 12345
canonify returns: 12345
Parse0 input: 12345
Parse0 returns: 12345
Local_check_mail returns: $# error $: 553 SPAM3 is not wanted !

> Local_check_mail input: 123 . 345 . abcd . 45-ry
canonify input: 123 . 345 . abcd . 45-ry
Canonify2 input: 123 . 345 . abcd . 45-ry
Canonify2 returns: 123 . 345 . abcd . 45-ry
canonify returns: 123 . 345 . abcd . 45-ry
Parse0 input: 123 . 345 . abcd . 45-ry
Parse0 returns: 123 . 345 . abcd . 45-ry
Local_check_mail returns: $# error $: 553 SPAM4 is not wanted !

> Check_Subject input: Invitation to workshop "Chemistry-2003"
Check_Subject returns: OK

> Check_Subject input: Avril Lavigne - the best
Check_Subject returns: $# error $: 553 This message may contain Avron . VIRUS

> Check_Subject input: Please see - Klez removal tool
Check_Subject returns: $# error $: 553 This message may contain Klez . VIRUS

> Check_Subject input: Only for $100 !
Check_Subject returns: $# error $: 553 This message may contain SPam

> Check_Subject input: New DVD . . .
Check_Subject returns: $# error $: 553 This message may contain SPam2

> Check_Subject input: M-kM-OM-NM-SM-UM-LM-XM-TM-AM-CM-IM-I M-DM-LM-Q M-DM-IM-SM-TM-RM-IM-BM-XM-@M-TM-EM-RM-OM-W
Check_Subject returns: $# error $: 553 This message may contain ruSPam5

> Check_Subject input: M-pM-OM-KM-UM-PM-KM-A-M-PM-RM-OM-DM-AM-VM-A M-EM-LM-OM-K-M-PM-AM-LM-OM-K !
Check_Subject returns: $# error $: 553 This message may contain ruSPam6

Подобным же образом можно проверить работу остальных наборов правил перезаписи из
антиспам-фильтра:
SCheckMailer
SCheckTo
SCheckMessageID

-------------------
Проверка комбинаций со специальными символами в тестовом режиме имеет свои особенности.
Команда "/map имя_спец.преобразования аргумент" обрабатывается только regex, поэтому при проверке аргументов, включающих в себя специальные символы, нужно исходить только из того, как этот спец. символ рекомендуется обозначать в man regex. Команды Local_check_mail, Check_Subjec и другие, помимо вызова специального преобразования класса regex, обрабатываются еще и sendmail, поэтому здесь нужно учитывать и sendmail'овские особенности работы со специальными символами.
Например, пробел в словосочетании (special offer) не вызовет проблем у команды /map spam special offer но при проверке правил перезаписи нужно будет задать special\.offer

/map ChSbSpam special offer
> map_lookup: ChSbSpam (special offer) returns @CATCHED (0)

Check_Subject special\.offer
> Check_Subject input: special offer
Check_Subject returns: $# error $: 553 This message may contain SPAM
Особенности использования таких классов regex, как [[:space:]] и [[:blank:]], описаны здесь.