博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MIME::Lite发邮件附件
阅读量:5749 次
发布时间:2019-06-18

本文共 2890 字,大约阅读时间需要 9 分钟。

MIME::Lite发邮件附件(并有结合Net::SMTP::TLS进行账号认证):

# cpan MIME::Lite

# cpan Net::SMTP::TLS

To多人格式:

$email{'To'}='<zhi.yang@ming.com>,<ming.yang@ming.com>';

方式一:

注:

1、该方式是将指定路径文件以附件形式发送

2、Data处必须有,内容可自己调整

3、$msg->attach需写两处,也可再写$msg->attach添加多个附件(后面的第1部分就不用重复写了)

# vi mail.pl

#!/usr/bin/perl -w

use MIME::Lite;

use Net::SMTP::TLS;

my %email;

$email{'To'}='zhi.yang@ming.com';

$email{'Cc'}='zhi.yang@ming.com';    

$email{'From'}= 'zhi.yang@ming.com';

$email{'SmtpHost'}= 'SMTP.ming.com';

$email{'SmtpPort'}= '587';

$email{'Hello'}= 'ming.com';

$email{'User'}= 'zhi.yang';

$email{'Password'}= 'xxxx';

    my $msg=MIME::Lite->new(

                    From=> $email{'From'},

                    To=> $email{'To'},

                    Cc=>$email{'Cc'},

                    Subject=>$email{'Subject'},

                    Type => 'multipart/mixed'

                   );

$msg->attach(

Type     => 'TEXT',

                Data     => 'aa',

);

$msg->attach(

Type     => 'TEXT',

                Path     => '/root/aa.log',

Disposition => 'attachment'

);

my $smtp = Net::SMTP::TLS->new(

"$email{'SmtpHost'}:$email{'SmtpPort'}", 

User =>  $email{'User'}, 

Password => $email{'Password'} ,

Hello =>  $email{'Hello'},

Timeout  => 30 

) or die("Failure to connect mail host!\n");

my $contentString = $msg->as_string() or die "$!";

    $smtp->mail($email{'From'});

    $smtp->to($email{'To'});

    $smtp->data();

    $smtp->datasend($contentString);

    $smtp->dataend();

    $smtp->quit();

:wq

方式二:

注:

1、Disposition => 'attachment' 表示以附件显示,inline表示在邮件正文中显示

2、邮件内容采用的HTML格式,<dt>表示坐端开头写,<dd>表示左端空2个字符写,<br>表空一行

3、cc处可写多个人,中间用","隔开,To处貌似只能写1个

# vi mail.pl

#!/usr/bin/perl -w

use MIME::Lite;

use Net::SMTP::TLS;

my %email;

$email{'To'}='zhi.yang@ming.com';

$email{'Cc'}='zhi.yang@ming.com';    

$email{'From'}= 'zhi.yang@ming.com';

$email{'SmtpHost'}= 'SMTP.ming.com';

$email{'SmtpPort'}= '587';

$email{'Hello'}= 'ming.com';

$email{'User'}= 'zhi.yang';

$email{'Password'}= 'xxxxx';

&mailWithAttachment_send(%email);

sub mailWithAttachment_send(){

    my $msg=MIME::Lite->new(

                    From=> $email{'From'},

                    To=> $email{'To'},

                    Cc=>$email{'Cc'},

                    Subject=>$email{'Subject'},

                    Type => 'multipart/mixed'

                   );

$msg->attach(

Type     => 'TEXT/HTML',

Encoding => 'quoted-printable',

Data     => qq{

 <dl>

        <dt>Dear all:</dt>

<dd>CTS测试报告已出,</dd> 

<dd>详见数据平台:</dd>

<dd><a class="text-justify" href="http://aa.ming.com/bb.html">http://aa.ming.com/bb.html</a></dd>

        <dd><br></dd>

        <dt>Dear</dt>

        <dd>请关注测试结果并将差异/修改引入问题提交CR,多谢~~~</dd>

        <dd><br></dd>

        <dd>其中数据平台Log</dd>

        <dd><br></dd>

        <dd>Thanks!</dd>

</dl>

},

Disposition => 'inline'   (inline表示显示在邮件正文中,attachment表示以附件显示)

);

my $smtp = Net::SMTP::TLS->new(

"$email{'SmtpHost'}:$email{'SmtpPort'}", 

User =>  $email{'User'}, 

Password => $email{'Password'} ,

Hello =>  $email{'Hello'},

Timeout  => 30 

) or die("Failure to connect mail host!\n");

my $contentString = $msg->as_string() or die "$!";

    $smtp->mail($email{'From'});

    $smtp->to($email{'To'});

    $smtp->data();

    $smtp->datasend($contentString);

    $smtp->dataend();

    $smtp->quit();

}

:wq

本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/1936545如需转载请自行联系原作者
yangzhimingg
你可能感兴趣的文章
开启“无线网络”,提示:请启动windows零配置wzc服务
查看>>
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>
纯DIV+CSS简单实现Tab选项卡左右切换效果
查看>>
栈(一)
查看>>
ios 自定义delegate(一)
查看>>
创建美国地区的appleId
查看>>
例题10-2 UVa12169 Disgruntled Judge(拓展欧几里德)
查看>>
[c语言]c语言中的内存分配[转]
查看>>
JS 原生ajax写法
查看>>
如何打造亚秒级加载的网页1——前端性能
查看>>
Composer管理PHP依赖关系
查看>>
React.js学习笔记之JSX解读
查看>>
我所了解的Libevent和SEDA架构
查看>>
Socket编程问题小记
查看>>
基于Flask-Angular的项目组网架构与部署
查看>>
一张图道尽程序员的出路
查看>>
redis 常用命令
查看>>
LVS+Keepalived高可用负载均衡集群架构
查看>>
烂泥:kvm安装windows系统蓝屏
查看>>
iPhone开发面试题--葵花宝典
查看>>