Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 SpamAssasin spamc trouble   Vadim Krol   24 May 2006 16:27:28 
Архивное /ru.unix.bsd/395744745143.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional