首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

施用perl MIME:Lite模块发送html格式邮件

2013-01-04 
使用perl MIME::Lite模块发送html格式邮件发现N久没写博文了,有什么笔记也直接记到evernote里了,也不知这

使用perl MIME::Lite模块发送html格式邮件

发现N久没写博文了,有什么笔记也直接记到evernote里了,也不知这是好习惯还是坏习惯鸟~

?

记得在哪看过说,perl语言精髓是达到一个目的可以有很多种方法。

?

这话说得挺对的,因为就光发送邮件,你也会发现TM方法太多了,还得google一下选个比较好的方法

?

最后选了使用MIME::Lite模块,感觉挺强大的,上手也快

?

代码如下

?

sub mail_list{    exit 99 if(!@some_rule);    my ($sec,$min,$hour,$day,$month,$year,@tmp)=localtime;     # 邮件加个时间戳    ($min,$hour,$day,$month,$year) = (        sprintf("%02d",$min),        sprintf("%02d",$hour),        sprintf("%02d",$day),        sprintf("%02d",++$month),        sprintf("%04d",$year+1900)    );    my $from_addr = 'root@xxx.com';               #发送方    my $to_addr = 'flw521521@xxx.com';          #接收方    my $cc_addr = 'cc@xxx.com';                  #抄送    my $subject = '邮件标题';     #邮件标题    my $encode = 'quoted-printable';    #模块发送邮件内容时采用的编码方式    my $data = "say hello\n";    my $msg = MIME::Lite->new(        From     => $from_addr,        To       => $to_addr,        Cc       => $cc_addr,        Subject  => $subject,        Type     => 'multipart/mixed'     # 指定总的内容为多种,如果要发送附件的话,就是这个模式    );    $msg->attach(        Type    => 'text/html;charset=gb2312',     #指定邮件内容编码方式        Encoding => $encode,        Data    => qq{                   #接下来就是邮件中文了,简单的html编码,其中可以穿插perl变量        <html>        <head>        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />        </head>        <boby>          <h5>您好!</h5>            <table border="1">              <tr>              <th>表格1</th><th>表格2</th><th>表格3</th>              </tr>            </table>           <hr />          $data    #穿插一个变量,很方便         ?<hr />          <h5 align="right">ITEYE</h5>          <h5 align="right">flw521521</h5>          <h5 align="right">$year-$month-$day $hour:$min</h5>        </boby>        </html>        },    );    $msg->send;}

?

编码这块,有两个,一个是MIME::Lite模块发送内容时的编码,一个html的编码

?

html代码那块的编码head编码设定,可要可不要,保险起见,就写一下。

?

如果要发送其他附件的话,添加一些邮件附属信息即可

$msg->attach(                              //发送附件       Type => 'auto',                        //附件类型自动判断       Path => '/home/abc.txt',               //附件的路径       Disposition => 'attachment',           //配置为附件,不在正文内   );   $msg->attach(                              //发送图片附件,随正文       Type =>'image/gif',       Path =>'/home/abc.gif',       Filename =>'logo.gif',   );

?

就这些吧,具体模块用法转至CPAN:http://search.cpan.org/~rjbs/MIME-Lite-3.029/lib/MIME/Lite.pm

热点排行