Not tested.  May provoke unpleasent censure.  Use at own risk.



> > > open (LIST,"/home/justin/www/cgi-bin/lovely_people.list");
> > > foreach (<LIST>) {
> > >   #send mail to "$_"
> > >  }

> > 2)this list has about 1000 people, and it takes more than a couple minutes
> > for  perl to go through that all,making my program look like its hanging

There's always

fork and goto GLADTHATSOVER
close STDOUT;
open (LIST,"/home/justin/www/cgi-bin/lovely_people.list");
foreach (<LIST>) {
  #send mail to "$_"
}
exit;

GLADTHATSOVER:

And since you've now got all the time you need to process the list,
you can even save bandwidth by arranging them by destination host
and invoking qmail-remote directly:

%Recipients=();
while(<LIST>){
        my($name,$host) = m/^\s*([^@]+)\@([^@]+)\s*\Z/ or next;
        $Recipients{$host} = [ $name.'@'.$host, @{$Recipients{$host}}];
};
for(keys %Recipents){
  $/ = "\0";    #match qmail-remote's idea of how to end a report item
  open QR,"/var/qmail/bin/qmail-remote $_ justin\@summerspam.com
@{$Recipients{$_}}<lovelymessage|";
  while(<QR>){
                $This = shift @{$Recipients{$_}};
                next if $This =~ m/^K/; # delivery successful
                # otherwise, queue it up for later
                system"/var/qmail/bin/qmail-inject -r -fjustin\@summerspam.com
$This<lovelymessage|";
        };
};




Good lord!  I'm instructing the world how to send thousands of e-mails
from within a CGI!  Please use this for good and not for evil!  
I'd better insert some tactical syntactic problems...

While we're at it, would anyone like some blue prints for atomic
weapons?

Reply via email to