代码之家  ›  专栏  ›  技术社区  ›  kamal

如何在Perl中使用email::Simple将电子邮件发送到多个电子邮件地址?

  •  0
  • kamal  · 技术社区  · 14 年前

    我希望能够将电子邮件发送到以下位置的多个电子邮件地址:

    my $email = Email::Simple->create(
        header => [
            To      => '"My Name" <myname@something.com>',
            From    => '"Someone1" <some@somewhere.com>',
            Subject => $subject,
        ],
        body => $body
    );
    sendmail($email, {transport => $transport});
    

    是否可以写:

    From => '"Someone1" <some@somewhere.com>', '"Someone2" <some2@somewhere.com>'
    
    3 回复  |  直到 14 年前
        1
  •  -1
  •   kingsfoil Brian Joseph Spinos    10 年前

    将所有电子邮件放入一个数组中,然后使用foreach遍历该数组:

    #!/usr/bin/perl -w
    use strict;   
    use Email::Send;
    use Email::Send::Gmail;
    use Email::Simple::Creator;
    
        my @emails = ('foo@bar.com', 'bar@foo.com', 'etc@foo.com');
        my $num = @emails;
    
          foreach (@emails) {
              my $email = Email::Simple->create(
                  header => [
                      From    => 'FROM@gmail.com',
                      To      => "$_",
                      Subject => "$subject",
                  ],
                  body => "$body"
                  );
    
          my $sender = Email::Send->new(
              {   mailer      => 'Gmail',
                  mailer_args => [
                      username => 'FROM@gmail.com',
                      password => 'PASSWORD',
                      ]
              }
              );
          eval { $sender->send($email) };
    
        }
    

    注: 这将适用于您决定使用的任何模块。这里我使用了:Email::Send(::Gmail)和Email::Simple::Creator。

        2
  •  12
  •   Chas. Owens    14 年前

    只需在字符串中使用逗号:

    my $email = Email::Simple->create(
        header => [
            To      => join(", ", @people),
            From    => '"Someone1"',
            Subject => $subject,
        ],
        body => $body
    );
    
        3
  •  1
  •   Garis M Suero    14 年前

    TO FROM

    To => 'mail1@mail.com;mail2@mail.com;mail3@mail.com;mail4@mail.com'