Perl在Windows下发邮件 |
|
在windows下发邮件没在UNIX下方便,它使用Perl模块Net::SMTP
sub send_mail{ my($to,$from,$subject,@body)=@_; use Net::SMTP; my $relay="smtp.163.net"; #这里使用的是163.net的服务器 my $smtp=Net::SMTP->new($relay); die "Could not open connection: $!" if (!defined $smtp); $smtp->mail($from); #mail函数用于指明你发送邮件时使用的是什么身份。当然,有时你可以就你的身份问题撒点儿谎。 $smtp->to($to); #to函数用于指明你要将邮件发送给谁。如果你调用的to函数带有一个名字列表,那么每人都会收到一个邮件拷贝。 $smtp->data(); #data函数用于指明你准备发送邮件正文。 $smtp->datasend("To: $to\n"); #这个函数用于发送邮件的实际文本。你必须输出你自己的报头域(To:、From:等)。报头域,比如Date:和Received:,是自动生成的。在报头与正文之间,还必须输出一个空行—$smtp->datasend(“\n”)。你的邮件正文跟随在这个空行的后面,并且也用$smtp->datasend()来发送。 $smtp->datasend("From: $from\n"); $smtp->datasend("Subject: $subject\n"); $smtp->datasend("\n"); foreach(@body) { $smtp->datasend("$_\n"); } $smtp->dataend(); #dataend函数用于指明你已完成邮件正文的发送,在运行这个函数之前,邮件并未发送。 $smtp->quit; #本函数用于断开与SMTP服务器的连接。 } 若要使用该函数,只需使用代表电子邮件各个部分的4个参数来调用它. |