vyrazeni starych mailu z mailboxu
Libor Pechacek
farco na clnet.cz
Úterý Říjen 5 13:33:44 CEST 1999
Martin Lebeda wrote:
> Potreboval bych z mailboxu automaticky vyradit stare polozky, nejlepe podle
> udaju uvedenych v poli 'Date: ' a to nejlepe pomoci nejakeho filtru, kteremu
> bych zadal neco jako "today - 14days" a on by presunul zpravy starsi nez 14 dni
> do jineho souboru.
>
> Hledal jsem v manualovych strankach programu 'procmail', ale bud jsem se spatne
> dival, nebo to neumi...nasel jsem jen moznosti prohledavani na pritomnost
> textu i pomoci regularnich vyrazu, zadne zminky o datumu.
Zatracovany Perl na to ma Mail::Folder. K mani ve CPANu. Pak uz se to
necha celkem snadno. Vlastne uz mam neco takoveho hotoveho...
#!/usr/bin/perl
use Mail::Folder::Maildir;
use Mail::Folder::Mbox;
my $mfold = new Mail::Folder('maildir',"/home/farco/Maildir") || die
"$!";
my $msgnum = $mfold->first_message;
my $now = time;
my $maxstore=60*60*24;
my @deletethem;
while ($msgnum) {
$hdr=$mfold->get_header($msgnum) || warn "get_header";
$dat = new Mail::Field("Date",$hdr->get("Date"));
if(($now-$dat->time) > $maxstore) {
print "will delete ";
push @deletethem, $msgnum;
}
print "$msgnum.header -- ".$dat->time;
print " header -- ".$hdr->get("Subject");
$msgnum = $mfold->next_message($msgnum);
}
$mfold->delete_message(@deletethem);
$mfold->sync;
$mfold->close;
--
Libor Pechacek <farco na clnet.cz>; ISO-8859-2 ready
PGP key: http://www.clnet.cz/~farco/pgp.txt
Sign&encryption key ID: 0x5DDE4353
Key fingerprint: E715 733C 8864 2A49 90A4 EAA6 257C CC00 5DDE 4353
Další informace o konferenci Linux