SMTPモジュールでの複数アドレスメールToの罠
SMTPモジュールで、送信先メールアドレスを設定する箇所は、メールヘッダーとtoメソッドで最低2箇所があります。
つぎに、その2箇所の送信先メールアドレスへ複数のアドレスを設定する場合、以下の注意が必要なのです。
例
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);」だといくらやってもメール送信されない…(罠)。