Удаление писем
Добавлено: 2010-08-21 9:57:41
Привет всем, стоит exim + dovecot + dspam, как сделать чтобы письма в папке .Junk удалялись допустим через месяц??
И один в поле воин, если он по-русски скроен
https://www.forum.lissyara.su/
Код: Выделить всё
#!/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;
}
Код: Выделить всё
# Рубим если отправка от себя к себе не с нашей сети
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