[Perl Module] perl模块之MIME::Lite发送有附件的邮件

Dec 24th, 2009

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2009/12/24/perl-mimelite-attach.html

前些日子做了一个自动发邮件的perl脚本,因为考虑到要使用附件所以使用了MIME::Lite 模块,用它来创建并发送带MIME 指定类型附件的邮件.MIME 是在邮件中附带各种文件文档的标准方式.

在perl中使用 MIME::Lite来发送有附件的邮件

 

首先,创建包含邮件各种头信息的 MIME::Lite 对象:

1
2
3
4
5
6
7
8
use MIME::Lite;
 
$msg = MIME::Lite->new(
From  => 'sender@example.com',
To   => 'recipient@example.com',
Subject => 'You want awstats ?',
Type  => 'multipart/mixed'
);

然后用 attach 方法添加附件内容:

1
2
3
4
$msg->attach(
Type    => 'auto',
Path    => '/root/awstats.gz',
);

MIME::Lite     模块的参数类型决定附件的类型和附件的添加方法:
Path     指定作为附件的文件的路径
Filename     指定接受方保存附件时,附件的默认文件名.如果指定了 Path 参数,那么默认的文件名就是路径中的名字
Data     指定附件添加的日期
Type     指定待添加附件的文件编码类型
Disposition    它的值只能是 inline 和 attachment.前者指定接受方打开邮件的时候附件内容会跟在邮件正文后显示,而不单独作为一个附加物.后者指定接受方应该指定一个附件的解码方 法,并且保存附件,此时会有提示

1
2
$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.
Perl mailSend 下载
使用方法

1
echo 'aaaaaaaa' |perl mailSend.pl --to kai.fu --subject 'you subject' --attach awstats.gz --attach test.pl

 

MIME::Lite 附录:

 

MIME::Lite 参数采用“参数名=>值”对形式.

MIME::Lite 头

Approved Encrypted Received Sender
Bcc From References Subject
Cc Keywords Reply-To To
Comments Message-ID Resent- X-
Content-* MIME-Version Return-Path
Date Organization

MIME::Lite 参数类型

Data FH ReadNow
Datestamp Filename Top
Disposition Id Type
Encoding Length
Filename Path

常用附件编码类型
TEXT      代表 text/plain,为 Type 的默认值;
BINARY     是 application/octet-stream 的缩写;
multipart/mixed     表明邮件有附件;
application/msword     表明附件为微软的 Word 文档;
application/vnd.ms-excel      表明附件为微软的 Excel 文档;
application/pdf     表明附件为 PDF 文档;
image/gif,image/jpeg,image/png      分别指定 GIF,JPEG,PNG 文件;
audio/mpeg      指定 MP3 格式文件;video/mpeg 指定 MPEG 格式影片;
video/quicktime     指定Quicktime 格式文件.

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
No comments yet.