> 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