MIME::Lite發郵件附件(并有結合Net::SMTP::TLS進行賬号認證):
# cpan MIME::Lite
# cpan Net::SMTP::TLS
To多人格式:
$email{'To'}='<[email protected]>,<[email protected]>';
方式一:
注:
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'}='[email protected]';
$email{'Cc'}='[email protected]';
$email{'From'}= '[email protected]';
$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',
);
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個
$email{'Password'}= 'xxxxx';
&mailWithAttachment_send(%email);
sub mailWithAttachment_send(){
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>其中資料平台Log</dd>
<dd>Thanks!</dd>
</dl>
},
Disposition => 'inline' (inline表示顯示在郵件正文中,attachment表示以附件顯示)
}
本文轉自linux部落格51CTO部落格,原文連結http://blog.51cto.com/yangzhiming/1936545如需轉載請自行聯系原作者
yangzhimingg