使用perl模块Net::SMTP发送普通邮件。
发送普通邮件
#!/usr/bin/perl
use strict;
use warnings;
use Net::SMTP;
my $host="smtp.wo.com.cn";
my $from="test@wo.com.cn";
my @to=('test1@126.com','test2@126.com');
my $subject="welcom to homepage";
my $text = "do it now";
my $user="test@wo.com.cn";
my $pwd="12345670";
my $smtp=Net::SMTP->new($host,Hello=>'localhost',Timeout=>120,Debug=>1);
$smtp->auth($user,$pwd);
foreach my $t_mail(@to){
$smtp->mail($from);
$smtp->to($t_mail);
$smtp->data();
# set header
$smtp->datasend("To: $t_mailn");
$smtp->datasend("From: $fromn");
$smtp->datasend("Reply-To: $t_mailn");
$smtp->datasend("Subject:$subjectn");
$smtp->datasend("n");
# set body
$smtp->datasend("$text nn");
$smtp->dataend();
}
$smtp->quit();
说明:
1、$stmp->auth($user,$pwd);
大部分SMTP服务器为了防止 spam /垃圾邮件,需要用户验证身份。
此方法要安装模块:Authen::SASL, 此模块系统不自带。
2、Debug => 1
开启Debug便于跟踪发送进程及排查错误。
3、注意发信人和收信人的地址要用单引号,使用双引号时要用转义字符处理@方可以(例:"test1@163.com")。
如果是个变量,需要用正则先将其转换。