Страница 1 из 1

Удаление писем

Добавлено: 2010-08-21 9:57:41
freek
Привет всем, стоит exim + dovecot + dspam, как сделать чтобы письма в папке .Junk удалялись допустим через месяц??

Re: Удаление писем

Добавлено: 2010-08-21 12:34:12
skeletor
Скриптом, который обходит все папки и удаляет.

Re: Удаление писем

Добавлено: 2010-08-21 12:50:31
freek
ну я так и собрался сделать =)

еще вопрос, какое правило для exima для спама чтобы в письме от кого не мог стоять мой адресс??? а то виагра задолбали :D:D

Re: Удаление писем

Добавлено: 2010-08-21 13:59:52
freek
Во написал я скрипт, кому надо =)) Перл плохо знаю но вроде зб пашет...

Код: Выделить всё

#!/usr/bin/perl

use DBI;

my $dir_truncate = ".Junk";
my $dsn = 'DBI:mysql:Имябазы:хост';
my $db_user_name = 'Логин';
my $db_password = 'Пароль';
my ($id, $password);
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
my $sth = $dbh->prepare(qq{SELECT maildir FROM mailbox});
$sth->execute();
while (my($maildir) = $sth->fetchrow_array()){

truncate_junk($maildir."/".$dir_truncate."/new");
truncate_junk($maildir."/".$dir_truncate."/cur");

}
$sth->finish();


sub truncate_junk {

$maildir = $_[0];
$nowtime = time();

opendir FDIR, $maildir;
while( $name = readdir FDIR) {

if($name != "." && $name != ".."){

($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)
 = stat($maildir."/".$name);

if(($nowtime - $mtime) > 1296000){

unlink($maildir."/".$name);

}

}
}

closedir FDIR;

}

скрипт удалят весь спам которому больше 15 дней..

Старый вопрос в силе, как написать правило для exim чтобы нельзя было подставлять мой ящик в от, виагра постоянно так присылает =)

Re: Удаление писем

Добавлено: 2010-08-22 12:33:56
mediamag
мда..виагра много кому приходит..помню помню)))

Код: Выделить всё

# Рубим если отправка от себя к себе не с нашей сети

  deny  hosts           = !+relay_from_hosts
        domains         = +local_domains
        !senders        = :
        condition       = ${if or{ { eq{$sender_address}{$local_part@$domain} }{ eq{$sender_address_domain}{$domain} } } }
        log_message     = "mail from my domain to my domain DENY"
        message         = mail from my domain to my domain DENY
встречный вопрос...как скрипт понимает что есть спам?

Re: Удаление писем

Добавлено: 2010-08-22 13:09:53
freek
Спасибо..