|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Krol 2:5030/1249.5 24 May 2006 16:27:28 To : All Subject : SpamAssasin spamc trouble -------------------------------------------------------------------------------- Я все со своей проблемой. Hадеюсь, что кто-нибудь поможет. Значит еще раз описание почтовой системы. Почту принимает сервер в сл. конфигурации: Сабж 3.0.2 (2004-11-16) стоящий на 5.3-STABLE, Postfix 2.1. Пришедшая почта, проходит на postgrey, чем обеспечивается грейлистинг, проверку на open relay, spf, после чего, все что прошло через вышесказанное, передается на подчисточный фильтр - это сабж. После обработки сабжем, почта уходит в соотв. с transport на mail based сервера, которые работают на CommuniGate Pro. Проблема следующая: письма, с большими вложениями иногда портятся сабжем (пример тела письма я приводил в предыдущем посте), вместо тела письма отдается бинарное тело spamc. Хотел ограничить spamc'у величину писем, которые надо проверять на спам его флагом -s, но ничего не работает. Он по прежнему продолжает обрабатывать больше письма. В конфигурационном файле Postfix'a master.cf есть сл. сторока: ============================================================================== spam unix - n n - 5 pipe flags=q user=spam argv=/usr/local/bin/std localhost:10027 antispam ${sender} ${recipient} /usr/local/bin/spamc -u spam -s 1024 ============================================================================== Как видно, ради проверки была выставлена длина проверяемых писем в 1кб, но письма больше 1024 байт все равно передаются на проверку spamd'у. Если в консоли руками запустить spamc: root@mre# spamc -u spam -s 1024 < test.eml, то флаг -s работает. В чем проблема? Кстати, файл std занимается простой пересылкой полученного результата от spamc по протоколу smtp. Увы, но нормального враппера для этого дела я не смог найти, пришлось соорудить это, а стандартных средств не встречал. Вот его код: std #!/usr/bin/perl -w use strict; use Net::SMTP; my $host = $ARGV[0]; my $ehlo = $ARGV[1]; my $mail_from = $ARGV[2]; my $rcpt_to = $ARGV[3]; my $cmd_line = $ARGV[4]; if (defined($cmd_line)) { open(CHILD, "$cmd_line |") or undef($cmd_line); } my $smtp = Net::SMTP->new($host); $smtp->hello($ehlo); $smtp->mail($mail_from); $smtp->to($rcpt_to); $smtp->data(); if (defined($cmd_line)) { while(<CHILD>) { next if (/^delivered\-to\:/i); $smtp->datasend($_); } } else { while(<>) { next if (/^delivered\-to\:/i); $smtp->datasend($_); } } $smtp->dataend(); close(CHILD) if defined($cmd_line); $smtp->quit; bye, All. --- GoldED+/BSD * Origin: Если ламеp очень крут - не пугайся - это root! (2:5030/1249.5) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/395744745143.html, оценка из 5, голосов 10
|