push (@INC, 'pwd'); use Getopt::Long; use Net::SMTP;
GetOptions("l|list=s" => \$listName,
"s|sender=s" => \$replySender,
"r|response=s" => \$responseFilePath
);
exit unless ($listName or ($replySender and $responseFilePath));
$responseFilePath= "$ENV{'HOME'}/lists/$listName.response"
unless $responseFilePath;
while(<STDIN>)
{ $replyToAddress= $2 if /^(Reply-To:\s*)(.*)/;
$fromAddress= $2 if /^(From:\s*)(.*)/;
last if /^\n/; }
$replyToAddress= $fromAddress unless $replyToAddress;
exit unless $replyToAddress;
open(Response, $responseFilePath)
or die "Cannot read from <$responseFilePath>.";
while(<Response>)
{ $mailMessage.= "To: $replyToAddress\n", next if /^To:/;
$mailMessage.= $_;
}
close(Response);
$mailer= new Net::SMTP();
$replySender= $listName."-admin\@".$mailer->domain()
unless $replySender;
if ($mailer->mail($replySender)
&& $mailer->to($replyToAddress))
{
$mailer->data();
$mailer->datasend($mailMessage);
$mailer->dataend;
}
$mailer->quit;
exit;