Sending email to multiple recipients

17,513

Solution 1

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.

Solution 2

Instead of separating the email addresses with spaces, use a comma with no intervening spaces. This works for me..

Share:
17,513
Jonathan M
Author by

Jonathan M

Live and let dev. :)

Updated on June 07, 2022

Comments

  • Jonathan M
    Jonathan M almost 2 years

    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?