Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sending email to multiple recipients

I've moved some old code from an old unix box to our new unix box, and I'm having some difficulty with a perl script sending email to multiple recipients. It works on the old box.

Old box perl: version 5.004_04 built for PA-RISC2.0

New box perl: v5.8.8 built for IA64.ARCHREV_0-thread-multi-LP64

Here's the basics of the script (stripped-down):

use Net::SMTP::Multipart;
$to = "sam\@bogus.com tom\@foo.com";
$smtp = Net::SMTP::Multipart->new($smtpserver);
$smtp->Header(To    =>  $to,
      From  =>  "junk\@junk.com",
      Subj  =>  "This is a test.");
$smtp->Text("Hello, world!\n");
$smtp->End();

This works if I change it to $to = "justOneEmail\@address.com", but if I have two or more email addresses (separated by spaces), it no longer works. I don't get an error message, but no message shows up.

Any ideas why?

like image 757
Jonathan M Avatar asked Oct 08 '22 21:10

Jonathan M


1 Answers

Do it like this:

use Net::SMTP::Multipart;
$to1 = "sam\@bogus.com"; 
$to2 = '[email protected]';
$smtp = Net::SMTP::Multipart->new($smtpserver);
$smtp->Header(To    =>  [ $to1, $to2, '[email protected]' ],
              From  =>  "junk\@junk.com",
              Subj  =>  "This is a test.");
$smtp->Text("Hello, world!\n");
$smtp->End();

Notice that if you use double-quotes, you should escape the @ in the email addresses, or perl may try to interpret it as an array interpolation.

like image 126
theglauber Avatar answered Oct 13 '22 10:10

theglauber