用perl发一大堆邮件的一种方法
用perl发一大堆邮件的一种方法
发布时间:2017-01-04 来源:查字典编辑
摘要:帮朋友写的。本程序从一个文本文件中读取邮件地址和一些需要的记录。activeperl5.8+winxp下通过。#!/usr/bin/perl...

帮朋友写的。

本程序从一个文本文件中读取邮件地址和一些需要的记录。

activeperl 5.8 + winxp下通过。

#!/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 filen";

while(<FILE>){

chomp;

($usr,$passwd,$detail) = split(/,/);

#如果您的列表里直接存储的是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("nn");

$smtp->datasend("$msgn");

$smtp->dataend();

$smtp->quit;

}

list.txt范例文件

ginger@syau.edu.cn,1111,臭老九

sleetdrop@hotmail.com,2222,姜源

sleetdrop@126.com,3333,酱小鱼

sleetdrop@sohu.com,4444,小姜

运行结果

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

用outlook成功收到

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

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新编程开发学习
热门编程开发学习
软件教程子分类