小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

SMTPモジュールでの複数アドレスメールToの罠

SMTPモジュールで、送信先メールアドレスを設定する箇所は、メールヘッダーとtoメソッドで最低2箇所があります。
つぎに、その2箇所の送信先メールアドレスへ複数のアドレスを設定する場合、以下の注意が必要なのです。

  • メールヘッダーには、複数のアドレスを、文字列内リストで表現します。
  • toメソッドには、複数のアドレスを、引数のリストで表現します。

my $mailto = 'aaa@bbb.co.jp, xxx@yyy.co.jp; # 複数のアドレスを、文字列内リストで表現
my @mailto = split(',', $mailto);           # 複数のアドレスを、配列変数リストで表現
#メールヘッダー設定
my $header = << "MAILHEADER";
To: $mailto
Subject: $subject
:
:
#メール送信
my $smtp = Net::SMTP->new('mailhost');
$smtp->to(@mailto);
:
:

で、何が罠かというとメールヘッダーの「To: $mailto」は文字列内がリストで、
toメソッドの「$smtp->to(@mailto);」は、配列変数リストというところ。


つまり、文字列内リストの「$smtp->to($mailto);」だといくらやってもメール送信されない…(罠)。