Best way to manage a personal mailing list?

For many years I’ve been inviting a group of friends over to brunch and/or wine/cheese via a personal mailing list.  This is just a text file of the form


bcc: foo@bar.com
bcc: yow@baz.org
bcc: student@veryrich.edu

I prepare an email message in Emacs, to: philg, and then insert all of these bcc: headers.  This then gets sent to a mailer at MIT and off to the world.  Worked great in the mid-1990s before spam made the Internet the time-waster that it has become.  Now many of my friends don’t get the email at all.  Hotmail, for example, when it sees something to: philg@mit.edu, bcc: happy_user@hotmail.com, sends it straight to the junk mail folder.


The challenge now is the best way to divide this up so that 100 individual emails are sent, each one from: philg, to: person_on_list.  One answer would be to write a Perl script on the Unix machine.  It would take two arguments, one the filename of a message and the other a filename with one email address on every line.  The Perl script would look through the email addresses and send out an email on my behalf.  (Anyone know where to get a script that does this already?; I checked cpan.)


Unix boxes typically have list managers such as Majordomo installed but as best as I can recall the email from these programs usually has a bulk look and feel, being sent to “fish-lovers-list” instead of the recipient.  I’m thinking that these are likely to be trapped by spam filters as well.


Another answer would seem to be Microsoft Outlook.  I switched to Outlook a couple of years ago when I got a Handspring Treo.  So why not just add every brunch guest to my Outlook contacts folder and somehow spam them from my desktop machine?  This has the advantage that I’m only keeping one database of contacts.  This has the disadvantage that it doesn’t work when on the road.  The regular Outlook distribution list mechanism produces an email with multiple To: recipients, which I don’t want to do because when people reply they often unintentionally reply to the entire list (in this case about 100 people).  Are there VB scripts out there that will force Outlook to send one email at a time to each person on a distribution list?  It seems as though there is a product, http://www.mapilab.com/outlook/send_personally/, that claims to do the job.


Finally there are Web services such as Evite.  I don’t really need a count of who is going to come.  These tend to more drop-in sorts of events so Evite is rather too heavy-handed.  Also Evite, I think, subjects users to banner advertisements and I’m not sure that I want to surrender control of my database to them.


Thoughts?  Scripts?  Recommendations?


[Update:  My favorite solution so far is Ryan Tate’s very simple Perl script, referenced in the comments at http://www.ocf.berkeley.edu/~ryantate/massmail.pl.txt; I got this working with the help of one of the Unix wizards at MIT who installed the Mail::Send library.  I modified the script to add a Reply-To header and will eventually modify it so that it takes a database file with multiple fields per line, e.g., first name, last name, group membership (e.g., “kids”, “nerds”, “night_owls”) and can send selectively to members only of one or more groups.]


[Conclusion:  The Weblog seems to be truly powerful.  At 4 pm I asked a question.  By 6 or 7 pm I had a raft of workable answers.  By 9 pm I used one of those answers to invite more than 183 people to a going-away party on Wednesday evening (I head off to Greece on Thursday morning).]


[December 2004 update:  A friend and I managed to enhance Ryan Tate’s Perl script and the version with more features is available at http://philip.greenspun.com/software/brunch-spam.pl.txt]

Full post, including comments