>У меня такое случалось когда spam.pl (связывающий элемент между spamc и postfix)
>получал письмо с несколькими получателями. Как отдавать корректно письмо в постфикс
>он не знал, и в результате получалась именно такие undisclosed-recipients и
>пустое body. Переписал spam.pl, вот выкладываю если нужно:
>
>#!/usr/local/bin/perl
>
># Copyright (c) 2006 Alexander Lobachov <alxl@REMOVE-THIS-FAKEsmg.lv>.
># All rights reserved.
># This piece of software is public domain.
>
>use strict;
>
>############################################################
>my $spam_level = 15;
>my $smtp_host = 'localhost:10027';
>my $hello_host = 'spamfilter';
>my $spamc_path = '/usr/local/bin/spamc';
>my $spamc_flags = '-U /var/run/spamd/spamd.sock';
>############################################################
>
>my @buf;
>
>open(my $CF, "$spamc_path $spamc_flags |") || die('spamc not found');
>
>while (<$CF>) {
> (close($CF) && exit(0)) if
>(/^X-Spam-Level: \*{$spam_level,}/i);
> next if (/^delivered-to:/i);
> push(@buf, $_);
>}
>
>require Net::SMTP; # yep, load it up
>only when we need
>
>my $smtp = Net::SMTP->new($smtp_host);
>$smtp->hello($hello_host);
>$smtp->mail(shift(@ARGV));
>$smtp->recipient(@ARGV);
>
>$smtp->data(@buf);
>$smtp->quit();
>close($CF);
>exit(0); Спасибо большое правда как будет при вашем переделанном скрипте выглядеть стока транспорта в master.cf?
со старым скриптом у меня была такая
spamfilter unix - n n - 16 pipe
flags=R user=spamfilter argv=/etc/postfix/script/spam.pl "localhost:10027" "spamfilter"
"${sender}" "${recipient}" "/usr/bin/spamc"
А с вашим я думаю так будет тогда(т к у вас в скрипте параметры прописаны жёстко)
spamfilter unix - n n - 16 pipe
flags=R user=spamfilter argv=/etc/postfix/script/spam.pl
"${sender}" "${recipient}"
или если по другому поправте меня пожалуйста.(И ещё раз спасибо за скрипт)