设为首页 收藏本站
查看: 1074|回复: 0

[经验分享] 使用perl MIME::Lite模块发送html格式邮件

[复制链接]

尚未签到

发表于 2017-5-19 11:26:09 | 显示全部楼层 |阅读模式
  发现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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379059-1-1.html 上篇帖子: 用SOCKET来传输文件的PERL脚本 下篇帖子: perl 执行一个系统命令(svn info),发一封邮件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表