> On (02/09/01 15:32), Andrew Pollock wrote: > > > The main problem I have is that each mailbox/folder/whatever you > > want to call it, grows without bounds. I wouldn't mind something to > > automatically shoved mail in a folder for each month or something like > > that, but I don't think that IMAP/Pine etc support multilevel folders, > > or do they? > I don't sort into folders. It's too time consuming to set up a new folder/rule for each topic and my mailer already handles sorting by threads/sender/subject anyway - plus i can just grep content if necessary. I do archive read messages every week. I have attached the perl and bash scripts I wrote to do that. Either script works by itself, but the bash script will choke if your maildirs are big. Note that I am not a perl hacker so take the code with a grain of salt. The scripts are made for Maildir style mailboxes. If anyone has anything for mbox I could use it (I guess you could just archive the whole mbox and start afresh, but that would archive unread messages as well). g
#!/usr/bin/perl -w
# small script to archive maildirs
# may be some tricks. angus@3wsi.com 20010809
use strict;
use File::Copy;
my $maildir = "/home/ii/Maildir";
my $archive = "/home/ii/Maildir/old";
# make new maildir
my (undef, undef, undef, $mday, $mon, $year, undef, undef, undef) = localtime;
my $map = sprintf "%4d%02d%02d", $year+1900, $mon+1, $mday;
print "Making archive ".$map." ...\n";
my $box = $archive."/".$map;
(-d $box) or `maildirmake $box`;
# move message to new maildir change to mv after testing
foreach (glob $maildir."/cur/*")
{
#print $_."\n";
move($_, $box."/cur/") or die "could not move $_\n" ;
}
# tarball archive
print "tarring archive ".$box." ...\n";
chdir $archive or die "Could not chdir to $archive\n";
`tar -cvzf $map.tar.gz $map`;
# remove maildir
print "removing maildir ...\n";
`rm -r $box`;
0;
#!/bin/bash # small script to archive maildirs # may be some tricks. angus@3wsi.com 20010809 # bash version MAILDIR="/home/ii/Maildir"; ARCHIVE="/home/ii/Maildir/old"; # make new maildir DATE=`date +%Y%m%d` echo making archive $DATE ... BOX="$ARCHIVE/$DATE"; [ -d $BOX ] || maildirmake $BOX # move message to new maildir # change to mv after testing ... echo copying messages ... mv $MAILDIR/cur/* $BOX/cur/ # tarball archive echo tarring maildir ... cd $ARCHIVE tar -cvzf $DATE.tar.gz $DATE # remove archive echo removing maildir ... rm -r $BOX echo done
Attachment:
pgp475aK7jdcy.pgp
Description: PGP signature