我已经将旧的unix框中的旧代码移动到我们的新unix框中,并且我在使用perl脚本向多个收件人发送电子邮件时遇到了一些困难。它适用于旧盒子。
旧框perl:为PA-RISC2.0构建的版本5.004_04
新的盒子perl:为IA64.ARCHREV_0-thread-multi-LP64构建的v5.8.8
以下是脚本的基础知识(精简版):
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();
如果我将其更改为$to = "justOneEmail\@address.com"
,则此方法有效,但如果我有两个或更多电子邮件地址(以空格分隔),则不再有效。我没有收到错误消息,但没有显示任何消息。
任何想法为什么?
答案 0 :(得分:3)
执行like this:
use Net::SMTP::Multipart;
$to1 = "sam\@bogus.com";
$to2 = 'tom@foo.com';
$smtp = Net::SMTP::Multipart->new($smtpserver);
$smtp->Header(To => [ $to1, $to2, 'another_email@server.com' ],
From => "junk\@junk.com",
Subj => "This is a test.");
$smtp->Text("Hello, world!\n");
$smtp->End();
请注意,如果使用双引号,则应该在电子邮件地址中转义@,或者perl可能会尝试将其解释为数组插值。
答案 1 :(得分:2)
不使用空格分隔电子邮件地址,而是使用逗号而不插入空格。这对我有用..
答案 2 :(得分:-2)
声明一个数组,并将所有电子邮件ID设为
@MailTo = ('mail1@demomail.com', 'mail2@demomail.com', ...., 'mailn@demomail.com')
现在使用Net::SMTP
模块发送电子邮件
$smtp->to(@MailTo);