http://qs321.pair.com?node_id=635478

pysome has asked for the wisdom of the Perl Monks concerning the following question:

Dear all,
I use the NET::Smtp to sendmail.But only one mail can be sent every time.

I make a module like :MySMTP.pm

package MySMTP ... sub new { my $self = {}; $self->{SMTP} = Net::SMTP->new("192.168.0.11); $self->{DBH} = DBI->connect_cached(....); } sub get_list { ... return @list; } sub sendMail { my ($self,$to,$content) = @_; $self->{SMTP}->mail(xxx.s@soch.com); $self->{SMTP}->to($to); $self->{SMTP}->data(); $self->{SMTP}->datasend $self->{SMTP}->datasend("\n"); $self->{SMTP}->datasend('To: '.$to); $self->{SMTP}->datasend("\n"); $self->{SMTP}->datasend('Content-type:text/html;Charset=utf8'); $self->{SMTP}->datasend("\n"); $self->{SMTP}->datasend("Subject: hello"); $self->{SMTP}->datasend("\n\n"); $self->{SMTP}->datasend("$content\n"); $self->{SMTP}->dataend(); $self->{SMTP}->quit; }

Then i make a script(say a.pl) to use MySMTP.pm .I run the a.pl every minutes in crontab.

... use MySMTP; $mail = new MySMTP(); my @lists = $mail->get_list(); for my $addr (@list) { $mail->sendMail($addr,"how are you"); }
Every time,I only can get ONE mail in @lists .But it include about 50+ lists.
Where it gets wrong? Thanks.
Regarsd,
pysome