We no longer offer ftp downloads. If there is a file you need referenced here, please contact me by email and I will get it to you.
I read and post mail with Netscape, and divide mail up into different folders. That's easy to do for incoming mail; I just drag it where I want it when I'm done. It should be just as easy for outgoing, but I usually forget to open up "Sent" to drag stuff out, so I end up with thousands of messages in Sent.
I finally decided to do something about it, and this is the result.
Mail files begin with a line that says "From ". Everything after that belongs to that message until you find another "From ". This format is true for Netscape and many other mail handling programs.
Netscape also creates another relaed file to handle sorting and deleting, but it watches the date stamps and will recreate the other file if you mess with the original as we are doing here. After adding messages, the folder will appear with "???" until you click on it; Netscape recreates its summary file then (Note that you want Netscape mail CLOSED while doing the splitting).
#!/usr/bin/perl
open(INDEX,"index");
# "index" is a file that contains lines that look like this:
# To: "vick@vscacs.vsc.edu" <vick@vscacs.vsc.edu>|Vermont
# To: Raven <Raven@aol.com>|Personal
# To: Richard MacNevin <richmac@clear.net.nz>|Mac
#
#
# It was produced by grepping "^To:" from the "Sent" file,
# discarding duplicates with "sort -u" and then adding
# the "|File" to indicate where I ultimately want to file
# the messages.
# I did this only for the few dozen addresses I want and discarded
# the rest of them.
#
while (<INDEX>) {
chomp;
($who,$file)=split /\|/;
$who =~ s/To: .*<(.*)>/$1/;
$who =~ s/To: (.*)/$1/;
$who = lc($adds);
# this all just gets the address down to a simple "xxx@yyy"
if (! $file) {
$file = "Misc"
};
# I didn't bother with a lot of the addresses, so we need to
# default them
$myfiles{$who}=$file;
#create the hash
}
chdir "/usr/tony/nsmail"
# obviously this varies
open(MAIL,"Sent");
$mesg="";
$inaddr=0;
while(<MAIL>) {
# this won't be true until we hit the second "From " that
# indicates the beginning of a message
if (/^From / && $inaddr) {
# when it is true (we have a new message)
# print out the old and close the file
print MYFILE "$mesg";
close MYFILE;
$mesg=$_;
$inaddr=0;
next;
}
$mesg .= $_;
# accumulate lines
# I've seen people read files like this in paragraph
# mode, but that won't work for mail files because
# the end of one message does not necessarily have a blank line
next unless /^To: /m;
# now we have the "To:" line.
chomp;
$adds=$_;
$adds =~ s/To: .*<(.*)>/$1/;
$adds =~ s/To: (.*)/$1/;
$adds = lc($adds);
# make it look like the index
$inaddr=1;
# set this so when we next reach "From: " we will write.
$outfile=$myfiles{$adds};
if (! $outfile) {
# "index" doesn't contain all the addresses that might be in "Sent"
$outfile="Misc";
}
open(MYFILE,">>$outfile");
}
# at the very end there is left over stuff to write
print MYFILE "$mesg";
close MYFILE;
Download:
(C) November 1998 Anthony Lawrence
Have you tried Searching this site?
Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates
This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.
Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.
Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.
We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.
Click here to add your comments
Don't miss responses! Subscribe to Comments by RSS or by Email
Click here to add your comments
If you want a picture to show with your comment, go get a Gravatar