Hi, I wrote a script for myself to rotate the sent-mail folder. I guess you can easily to modify it to rotate other folders as well. Just modify the variables at the beginning and put it in /etc/cron.monthly(debian only). Hope this helps... Shao. Chris Gushue [[EMAIL PROTECTED]] wrote: > Is there a way to archive mailboxes at the beginning of every month (or > some other period) like Pine does? Just after a couple weeks, my > debian-user mailbox (mbox) is 3.6 MB with over 1200 messages. As the > mailbox gets bigger, Mutt takes longer to open it. > > Eg. move the contents of debian-user to debian-user-1999-aug > > Any solution would be great, not necessarily a mutt-specific one > (eg. procmail/crontab/scripts/etc). I'm sure I saw a message about this > on a mailing list I am on, but couldn't find anything. Perhaps it was on > a newsgroup somewhere... > > -- > -- Chris Gushue --------- ICQ:409207 --------- [EMAIL PROTECTED] -- > GCS d- s+:- a23 C++>$ UL+++ P+>++ L+++ E---- W++ N++ o-- K- w--- O- > M-- V-- PS+++ PE Y+ PGP+ t++ 5+ X++ R- tv+ b++ DI+ D+ G++ e h! r y+ > -- http://seymour.napalm.net ----------- http://owirc.napalm.net -- -- ____________________________________________________________________________ Shao Zhang - Running Debian 2.1 ___ _ _____ Department of Communications / __| |_ __ _ ___ |_ / |_ __ _ _ _ __ _ University of New South Wales \__ \ ' \/ _` / _ \ / /| ' \/ _` | ' \/ _` | Sydney, Australia |___/_||_\__,_\___/ /___|_||_\__,_|_||_\__, | Email: [EMAIL PROTECTED] |___/ _____________________________________________________________________________
#!/usr/bin/perl #Mutt does not have the feature like pine #which automatically backup the sent-mail #folder each month. #Mutt is designed to be small and effient. #Therefore, this kind of feature will NEVER #go into mutt. The standard answer is to #use cron. And that is why I write this script #Written by Shao Zhang <[EMAIL PROTECTED]> #This program can be freely redistributed with #ABSOULUTELY NO WANRANTY # Program starts here #hopefully, this is where your outgoing mail stores $mail_dir = "/home/shao/mail"; $folder_prefix = "sent-mail"; $current_time = `date`; chop($current_time); $last_month = `date \'+%B\' --date \'last months\'`; chop($last_month); $two_month_ago = `date \'+%B\' --date \'2 months ago\'`; chop($two_month_ago); $current_year = `date \'+%Y\'`; chop($current_year); $last_year = `date \'+%Y\' --date \'last year\'`; chop($last_year); #Let's check if sent-mail is there for update. if (not -f "$mail_dir/$folder_prefix") { print "Error: Cannot find a sent-mail folder in $mail_dir \n"; print "Program exited abnormally \n"; exit 0; } #Check if the old sent-mail folder exists -- eg. sent-mail-March-1999 if (-f "$mail_dir/$folder_prefix-$two_month_ago-$current_year") { #Easy job, we have an old sent-mail-folder saved two months ago. #Now, mv the current sent-mail folder to sent-mail-last_month #and then we can get rid of the old stuff, then we are done. $bool = not `mv $mail_dir/$folder_prefix $mail_dir/$folder_prefix-$last_month-$current_year`; if ($bool) { #Ok, if we have moved the file with no problem $bool = not `rm $mail_dir/$folder_prefix-$two_month_ago-$current_year`; if ($bool) { #Ok, if we have deleted the old stuff with no problem just return; exit 0; } else { #Ok, cannot delete print "Cannot delete the old sent-mail folder\n"; print "Program exited abnormally\n"; exit 0; } } else { #Ok, cannot move, got a problem somehow, I will pass onto you to fix it print "Cannot move the current sent-mail folder to sent-mail-last_months\n"; print "Program exited abnormally\n"; exit 0; } } #Ok, it does not. No big deal, maybe we are going into next year. elsif (-f "$mail_dir/$folder_prefix-$two_month_ago-$last_year") { #Indeed, this is a new year. #Now, we have to be very carefull. Two months ago could be November or December. if ($two_month_ago eq "November") { $bool = not `mv $mail_dir/$folder_prefix $mail_dir/$folder_prefix-$last_month-$last_year`; } elsif ($two_month_ago eq "December") { $bool = not `mv $mail_dir/$folder_prefix $mail_dir/$folder_prefix-$last_month-$current_year`; } else { #Now, we have stuffed up. print "The program is confused about your computer's time\n"; print "Check you local settings\n"; print "The program exited abnormally\n"; exit 0; } if ($bool) { #Ok, we have moved the files correctly $bool = not `rm $mail_dir/$folder_prefix-$two_month_ago-$last_year`; if ($bool) { #Ok, we have deleted the file with no problem, just return exit 0; } else { #Ok, cannot delete print "Cannot delete the old sent-mail folder\n"; print "Program exited abnormally\n"; exit 0; } } else { #Ok, cannot move, got a problem somehow, I will pass onto you to fix it print "Cannot move the current sent-mail folder to sent-mail-last_months\n"; print "Program exited abnormally\n"; exit 0; } } #Ok, it seems we have covered all the cases. What if the system does not have a old sent-mail folder? #Doh! What next? No big deal again, just create a dummy old sent-mail folder for the next generation! else { #Let's create one then! if ($last_month eq "December") { #Be carefull again if (-f "$mail_dir/sent-mail-$last_month-$last_year") { #Everything is fine. It is not the time yet to update. exit 0; } open (OLD_SENT_MAIL, ">$mail_dir/sent-mail-$last_month-$last_year"); } else { if (-f "$mail_dir/sent-mail-$last_month-$current_year") { #Everything is fine. It is not the time yet to update. exit 0; } open (OLD_SENT_MAIL, ">$mail_dir/sent-mail-$last_month-$current_year"); } #Let's write some rubbish in it! if (OLD_SENT_MAIL) { print OLD_SENT_MAIL "Dummy old sent-mail-folder created by update-sentmail. \n"; print OLD_SENT_MAIL "This file was generated on $current_time.\n"; close OLD_SENT_MAIL; } else { print "Error: Cannot create a dummy old-sent-mail folder\n"; print "The program exited abnormally\n"; exit 0; } } #End of the update-sentmail program