Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Just can sent only ONE mail every time.

by pysome (Scribe)
on Aug 28, 2007 at 03:13 UTC ( [id://635478]=perlquestion: print w/replies, xml ) Need Help??

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

Replies are listed 'Best First'.
Re: Just can sent only ONE mail every time.
by ikegami (Patriarch) on Aug 28, 2007 at 03:18 UTC
    quit ends the connection according to the docs. You probably have to create a new Net::SMTP object for every email. (Each email can have more than one recipient, though.)
      Thanks. But if i put the new Net::SMTP in sub sendMail.It means every list will be connect the mail server once,it's so time-consuming.
      Do you some other method.Or how to organise the "order" ?Thanks again
        Did you check if SMTP (or the version on which Net::SMTP is based) can send more than one message per connection? Even HTTP wasn't able to do so originally. At a glance, it doesn't look like SMTP can either.

        Why not simply pass the list of addresses in and send the one email to multiple recipients using either TO or BCC addressing?


        DWIM is Perl's answer to Gödel

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://635478]
Approved by GrandFather
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (2)
As of 2024-04-25 20:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found