perl發送郵件(可帶附件)

來源:互聯網
上載者:User

作為軟體開發人員,有時需要對伺服器上的某些進程進行監控,以便掌握伺服器的運行情況。因此當出現異常情況時,郵件提示是個不錯的選擇,可使開發維護人員及時進行維護處理。

1:利用Mail::Sendmail發送普通郵件

#!/usr/bin/perl

use strict;
use Mail::Sendmail;

sendmail
(
From => '123456@gmail.com',

#使用qq或163作為郵件地址時,需設定123456@gmail.com為白名單(否則qq會認為是垃圾郵件而拒收,163不用設定白名單);測試gmail時,gmail認為是不安全的郵件會拒收
To => '123456@qq.com',
Subject => 'Waring',
Message => "sth bad, pls check!!",
);

註:當perl提示模組不存在時,用cpan Mail::Sendmail安裝。郵件發送失敗時,可查看/var/spool/mail/root日誌找出失敗原因。

2:利用MIME::Lite發送帶附件的郵件

#!/usr/bin/perl

use strict;
use MIME::Lite;

#首先,建立包含郵件各種頭資訊的 MIME::Lite 對象:
my $msg = MIME::Lite->new(
From => '123456@gmail.com',
To => '123465@qq.com',
Subject => 'Warning',
Type => 'multipart/mixed'
);

#然後用 attach 方法添加附件內容:
$msg->attach(
Type => 'auto',
Path => '/usr/local/sbin/ss.pl', #附件路徑
);

MIME::Lite 模組的參數類型決定附件的類型和附件的添加方法:
Path 指定作為附件的檔案的路徑
Filename 指定接受方儲存附件時,附件的預設檔案名稱.如果指定了 Path 參數,那麼預設的檔案名稱就是路徑中的名字
Data 指定附件添加的日期
Type 指定待添加附件的檔案編碼類別型
Disposition 它的值只能是 inline 和 attachment.前者指定接受方開啟郵件的時候附件內容會跟在郵件內文後顯示,而不單獨作為一個附加物.後者指定接受方應該指定一個附件的解碼方 法,並且儲存附件,此時會有提示

$msg->send( ); # 預設的方法是用sendmail規則發送

#$msg->send('smtp', 'mailserver.example.com', Timeout => 30,Debug => 1);# 指定其它的方法

使用MIME::Lite來發送郵件有二種方法 sendmail 和 Net::SMTP.
調用 send 方法時,若第一個參數為“smtp”,則用 Net::SMTP 發送郵件.send的其它參數都傳給 Net::SMTP.不加任何的話就是系統的sendmail.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.