天天看點

MIME::Lite發郵件附件

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

繼續閱讀