#!/opt/local/bin/perl -w ### massmail ## Script for mass mailing your friends, one at a time. ## (Usage: massmail messagefile addressfile [subject]) use strict; use Net::SMTP; #part of standard Perl distro my $from='Ryan Tate <ryantate@ryantate.com>'; #YOUR EMAIL ADDRESS HERE my $message_file = shift or die "Usage: massmail messagefile addressfile [subject]\n"; my $address_file = shift or die "Usage: massmail messagefile addressfile [subject]\n"; my $subject = shift || ''; open MESSAGE, "<$message_file" or die "Could not open messagefile: $!"; my $message = join('',<MESSAGE>); #Slurp in the whole message file close MESSAGE or die "Could not close messagefile: $!"; open ADDYS, "<$address_file" or die "Could not open addressfile: $!"; my $smtp = Net::SMTP->new('mail'); #YOUR SMTP MAILHOST HERE $smtp->mail($from); #Send messages my $address_count=0; while (<ADDYS>) { chomp; next unless $_; #allow blank lines in addressfile $smtp->to($_); $smtp->data(); $smtp->datasend("From: $from\n"); $smtp->datasend("To: $_\n"); $smtp->datasend("Subject: $subject\n"); $smtp->datasend("\n"); $smtp->datasend($message); $smtp->dataend(); $address_count++; } $smtp->quit; close ADDYS or die "Could not close addressfile: $!"; print "Sent $address_count messages.\n";