#!/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";