Perl中使用MIME::Lite發(fā)送郵件實(shí)例

字號:


    有時候我們在部署腳本的時候,我們想知道,我們的程序執(zhí)行的怎么樣了,想得到執(zhí)行的結(jié)果,這樣我們也能放心很多是吧,那么在程序執(zhí)行成功或失敗的時候能夠給我沒發(fā)個郵件很是很不錯的。
    其實(shí)利用perl發(fā)郵件的方法有很多種,包括你在cpan上搜索mail關(guān)鍵字是一大堆,經(jīng)過實(shí)踐,MIME::Lite用來發(fā)郵件還是很合適的,最不可思議的是它可以幫你輕松的發(fā)送帶有附件的郵件哦。
    下面我們就以MIME::Lite發(fā)郵件為例:
    在cpan上面有關(guān)于它的詳細(xì)的用法()
    它發(fā)郵件的方式有兩種,第一種最簡單就是利用系統(tǒng)自身的mail程序,比如sendmail來進(jìn)行,運(yùn)行sendmail當(dāng)然也許要具有root的權(quán)限了
    另一個就是通過smtp的方式了,我們會以網(wǎng)易的163郵箱為例說明。
    我們先以默認(rèn)發(fā)送方式(sendmail)為例說明:
    代碼如下:
    #!/usr/bin/perl -w
    use MIME::Lite;
    my $msg = MIME::Lite->new(
    From => ,
    To => ,
    Cc => , ,
    Subject => ‘hello,my first mail from chenqing.org',
    Type => ‘multipart/mixed',
    Data =>' other data'
    );
    $msg->attach(
    Type => ‘image/png',
    Disposition => ‘a(chǎn)ttachment',
    Filename => ‘other.png',
    Path => ‘/home/king/perl/logo.png'
    );
    $msg->send;
    再來一個html格式的:
    代碼如下:
    #!/usr/bin/perl -w
    use MIME::Lite;
    my $msg = MIME::Lite->new(
    From =>,
    To => ,
    Cc =>, ,
    Subject => ‘hello,my first mail from chenqing.org',
    Type => ‘multipart/mixed',
    Data =>' other data'
    );
    $msg->attach(
    Type => ‘text/html',
    Data => qq{
    <body>
    這是我的 <b>good</b> image:
    <img src=”cid:logo.png”>
    </body>
    },
    );
    $msg->attach(
    Type => ‘image/png',
    Disposition => ‘a(chǎn)ttachment',
    Filename => ‘other.png',
    Id => ‘logo.png',
    Path => ‘/home/king/perl/logo.png'
    );
    $msg->send;
    下面看看怎么用smtp的方式發(fā)送:
    代碼如下:
    #!/usr/bin/perl -w
    use MIME::Lite;
    use MIME::Base64;
    use Authen::SASL;
    my $host='smtp.163.com';
    my $pass='yourpass';
    my ;
    my $msg = MIME::Lite->new(
    From => ,
    To => ,
    Cc => , ,
    Subject => ‘hello,my first mail from chenqing.org',
    Type => ‘multipart/mixed',
    Data =>' other data'
    );
    $msg->attach(
    Type => ‘text/html',
    Data => qq{
    <body>
    這是我的 <b>good</b> image:
    <img src=”cid:logo.png”>
    </body>
    },
    );
    $msg->attach(
    Type => ‘image/png',
    Disposition => ‘a(chǎn)ttachment',
    Filename => ‘other.png',
    Id => ‘logo.png',
    Path => ‘/home/king/perl/logo.png'
    );
    MIME::Lite->send(‘smtp', $host, Timeout=>60, AuthUser=>$user, AuthPass=>$pass);
    $msg->send;
    是不是很簡單呢?