« 昨天晚上下了一夜的雨。 | 首页 | 我的垃圾美工。 »

用perl发一大堆邮件的一种方法。

帮朋友写的。
本程序从一个文本文件中读取邮件地址和一些需要的记录。
activeperl 5.8 + winxp下通过。

Code:

#!/usr/bin/perl
use Net::Smtp;

#邮件发送服务器地址
$smtp_server = 'smtp.126.com';

#发件人地址
$from = 'sleetdrop@126.com';

#邮件标题
$title = '测试邮件一个,接好,别砸到!';

#发一封歇息多久
$delay = 1;

#包含收件人列表及可变信息的文本文件
#格式为:用户名,密码,详细信息
#请把它放在当前目录下,并把它命名为list.txt
$f_list='list.txt';
open(FILE,$f_list) || die "Can not open list file\n";
while(<FILE>){
chomp;
($usr,$passwd,$detail) = split(/,/);

#根据列表文件构建email地址
#$to = $usr.'@syau.edu.cn';

#如果您的列表里直接存储的是email地址,请用如下一句替换上面一句
$to = $usr;

#根据列表文件构建邮件内容。
#因为这里的heredoc要求顶格所以不能正常缩进
$msg=<<HTML;
$detail,您好。

我们的邮件服务器地址已经变为xxxxxxxx.
您的用户名为$usr密码为$passwd
请尽快登陆修改。
由于本次更改给您工作带来的不便在此表示歉意。
谢谢您的支持。

HTML

print "I am sending Email No.".($cnt+=1)." to ".$to."......\n";
&gingerMail($smtp_server,$from,$to,$title,$msg);
print "Email No.".$cnt." has been sent to: ".$to."\n";
sleep($delay);
}

close(FILE);
print "\n......All Finished!!!";

###########################
#                                                                
#例程gingerMail
#参数列表
#$smtp_server发邮件smtp服务器地址
#$from发件人地址      
#$to收件人地址                          
#$title邮件标题                            
#$msg邮件内容
#
###########################
sub gingerMail{
my($smtp_server,$from,$to,$title,$msg) = @_;
$smtp = Net::SMTP->new($smtp_server);
#如果您的服务器需要认证,请在下面输入用户名和密码。
#需要Auth-SASL模块的支持
#windows下可以用ppm安装,unix下请用CPAN安装。
$smtp->auth('sleetdrop','xxxxxxxxx');
$smtp->mail($from);
$smtp->to($to);
$smtp->data();
$smtp->datasend('From: '.$from);
$smtp->datasend("\n");
$smtp->datasend('To: '.$to);
$smtp->datasend("\n");
$smtp->datasend('Subject: '.$title);
$smtp->datasend("\n\n");
$smtp->datasend("$msg\n");
$smtp->dataend();
$smtp->quit;
}






list.txt范例文件

Code:


ginger@syau.edu.cn,1111,臭老九
sleetdrop@hotmail.com,2222,姜源
sleetdrop@126.com,3333,酱小鱼
sleetdrop@sohu.com,4444,小姜





运行结果

用outlook成功收到


引用:

本篇引用地址:
http://www.vetcafe.net/cgi-bin/mt3/mt-tb.cgi/2232

评论:

bs一下。

什么意思

怎样发送附近呢

发表评论

(如果您以前没在这里发表过评论,也许您发表的评论需要Blog主人的审核才能显示在这里,感谢您的静候。)