Perl中使用MIME::Lite发送邮件实例_perl

有时候我们在部署脚本的时候,我们想知道,我们的程序执行的怎么样了,想得到执行的结果,这样我们也能放心很多是吧,那么在程序执行成功或失败的时候能够给我没发个邮件很是很不错的。

其实利用perl发邮件的方法有很多种,包括你在cpan上搜索mail关键字是一大堆,经过实践,MIME::Lite用来发邮件还是很合适的,最不可思议的是它可以帮你轻松的发送带有附件的邮件哦。

下面我们就以MIME::Lite发邮件为例:

在cpan上面有关于它的详细的用法(http://search.cpan.org/~rjbs/MIME-Lite-3.028/lib/MIME/Lite.pm)

它发邮件的方式有两种,第一种最简单就是利用系统自身的mail程序,比如sendmail来进行,运行sendmail当然也许要具有root的权限了

另一个就是通过smtp的方式了,我们会以网易的163邮箱为例说明。

我们先以默认发送方式(sendmail)为例说明:

复制代码 代码如下:

#!/usr/bin/perl -w
use MIME::Lite;
my    $msg = MIME::Lite->new(
From     => ‘chenqing663@163.com',

To       => ‘chenqing663@foxmail.com',

Cc       => ‘some@other.com, some@more.com',
Subject  => ‘hello,my first mail from chenqing.org',
Type  => ‘multipart/mixed',
Data =>' other data'
);

$msg->attach(
Type     => ‘image/png',
Disposition => ‘attachment',
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     => ‘chenqing663@163.com',

To       => ‘chenqing663@foxmail.com',

Cc       => ‘some@other.com, some@more.com',
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 => ‘attachment',
Filename => ‘other.png',

Id => ‘logo.png',
Path => ‘/home/king/perl/logo.png'
);

$msg->send;

下面看看怎么用smtp的方式发送:

复制代码 代码如下:

#!/usr/bin/perl -w

use MIME::Lite;

use MIME::Base64;
use Authen::SASL;
my $host='smtp.163.com';
my $pass='yourpass';
my $user='xxx@163.com';
my    $msg = MIME::Lite->new(
From     => ‘xxx@163.com',

To       => ‘chenqing663@foxmail.com',

Cc       => ‘some@other.com, some@more.com',
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 => ‘attachment',
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;

是不是很简单呢?

时间: 2024-10-24 19:44:24

Perl中使用MIME::Lite发送邮件实例_perl的相关文章

Perl中的文件读写学习笔记_perl

一.打开.关闭文件 语法为open (filevar, filename),其中filevar为文件句柄,或者说是程序中用来代表某文件的代号,filename为文件名,其路径可为相对路径,亦可为绝对路径. 复制代码 代码如下:  open(FILE1,"file1");  open(FILE1, "/u/jqpublic/file1"); 打开文件时必须决定访问模式,在PERL中有三种访问模式:读.写和添加.后两种模式的区别在于写模式将原文件覆盖,原有内容丢失,形式

Perl中的单行注释和多行注释语法_perl

同其他大多数编程语言一样,Perl中的单行注释也是#开头,例如: 复制代码 代码如下: #print "Hello,World!"; 但多行注释,不同的语言有不同的注释方式,比如说:Java,C/C++: 复制代码 代码如下: /*  *注释若干行  *注释若干行  *注释若干行 */ Python: 复制代码 代码如下: """  用三个双引号,多行注释  用三个双引号,多行注释  用三个双引号,多行注释 """ '''  

perl中的$a和$b介绍_perl

即使打开了strict和warnings选项也无妨,下面代码并无错误和警告. 复制代码 代码如下: #!/usr/bin/perluse strict;use warnings;sub test {    $a = 1;    $b = 2;    print $a, "\n";    print $b, "\n";}test();1; 下面是perl文档中对这两个变量的解释: perldoc perlvar$a$b Special package variable

php中利用curl smtp发送邮件实例

$ telnet 邮箱SMTP服务地址 25 Trying 邮箱服务IP地址... Connected to 邮箱SMTP服务地址. Escape character is '^]'.  exchange邮箱服务器地址 Microsoft ESMTP MAIL Service ready at Sat, 2 Jun 2012 15:02:12 +0800 EHLO 127.0.0.1 -exchange邮箱服务器地址 Hello [邮箱服务IP地址] -SIZE -PIPELINING -DSN

perl中的范围声明our-my-local介绍_perl

老实说,这个东西有点折腾人,主要是书上的表述很晦涩,其实搞懂不难.   our,"把名字限于某个范围",其实就是明确声明一个"全局变量",虽然是在某个模块或者函数里面定义的,外面的也可以访问,如果已经声明过了,再次用"our",表示此处用的是全局的那个,不是同名的私有或者局部变量 复制代码 代码如下: our $PROGRAM_NAME = "waiter"; { my  $PROGRAM_NAME = "somet

perl 中的or与||的区别_perl

来看看下面的代码会输出什么? 复制代码 代码如下: my $a = 0;$a = $a or 1;print $a, "\n";$a = $a || 1;print $a, "\n"; 输出:01为什么呢?因为||, =, or 这三者优先级从左至右逐渐降低.所以,这样写可以:chomp(my $filename = shift( @ARGV ) || <STDIN>); 这样则不行:chomp(my $filename = shift( @ARGV )

Perl AnyEvent中的watcher实例_perl

这几天看了下perl的事件编程框架AnyEvent,重点参考了一下几篇文章: http://search.cpan.org/~mlehmann/AnyEvent-7.05/lib/AnyEvent.pm http://search.cpan.org/~mlehmann/AnyEvent-7.05/lib/AnyEvent/Intro.pod http://www.jb51.net/article/55278.htm 1.什么是事件编程? 举个简单的例子,你浏览网页的时候,你点击一个图片,蹭的弹出

perl中使用signal(信号)实例

  这篇文章主要介绍了perl中使用signal(信号)实例,本文讲解了信号的相关知识以,并给出了perl代码实例,需要的朋友可以参考下 使用signal,能让你的程序功能更丰富.要在Linux下列出所有的signal, 利用kill -l即可. 下面是我机器上的输出(后面还有到64的没列出来): 代码如下: xuyang@xuyang-desktop:/$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABR

perl面向对象实例_perl

首先让我们来看看有关 Perl 面向对象编程的三个基本定义: 1.  一个"对象"是指一个"有办法知道它是属于哪个类"的简单引用.(对象就是引用变量) 2.  一个"类"是指一个"有办法给属于它的对象提供一些方法"的简单的包.(类就是包) 3.  一个"方法"是指一个"接受一个对象或者类名称作为第一个参数"的简单的子程序.(类的方法就是第一个参数为类名或对象的方法) 一个类只是一个简单的