Всем доброго дня!
Возникла проблемка после подключения фильтра спама на спамассассине
у юзеров начали появляться письма пустышки
следующего характера: (и главное они не проходят по цепочке антивирусной проверке)Return-Path: <tcospwqong@katzandco.co.com>
X-Original-To: bugaenko@dom.com
Delivered-To: bugaenko@dom.com
Received: from spamfilter (localhost [127.0.0.1])
by gate.dom.com (Postfix) with ESMTP id 3870670D10
for <bugaenko@dom.com>; Sat, 10 Jun 2006 23:49:27 +0300 (EEST)
Message-Id: <20060610204927.3870670D10@gate.dom.com>
Date: Sat, 10 Jun 2006 23:49:27 +0300 (EEST)
From: tcospwqong@katzandco.co.com
To: undisclosed-recipients:;юзеры не могут их вытянуть аутлук экспрессом (The_BAT вытягивает нормально)
Подскажите откуда они беруться эти пустышки и как можно это исправить?
Связку почты следующая Postfix+MySql+Clamav+ClamSMTP+Spamassasin+Courier-imapЗаранее благодарен!
У меня такое случалось когда 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);
>У меня такое случалось когда 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}"или если по другому поправте меня пожалуйста.(И ещё раз спасибо за скрипт)
Да, именно так, всё верно.
Незачто :-)