1.Perl 发送邮件
如果你的程序在 Linux/Unix 系统上运行,你就可以在 Perl 中使用 sendmail 工具来发送邮件。
以下是一个简单的脚本实例用于发送邮件:
#!/usr/bin/perl
#接收者邮箱
$to = '123@qq.com';
#发送者邮箱
$from = 'test@qq.com';
#标题
$subject = 'Perl 发送邮件测试';
$message = '这是一封使用 Perl 发送的邮件。';
open(MAIL, "|/usr/sbin/sendmail -t");
# 邮件头部
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
# 邮箱信息
print MAIL $message;
close(MAIL);
print "邮件发送成功\n";

1.1 发送 HTML 格式邮件
我们可以在邮件头部添加 Content-type: text/html\n 来发送 HTML 格式的邮件,实例如下:
#!/usr/bin/perl
# 接收者邮箱
$to = '123@qq.com';
#发送者邮箱
$from = 'test@runoob.com';
#标题
$subject = 'Perl 发送邮件测试';
$message = '<h1>这是一封使用 Perl 发送的邮件<h1><p>你好。</p>';
open(MAIL, "|/usr/sbin/sendmail -t");
# 邮件头部
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n";
print MAIL "Content-type: text/html\n";
# 邮箱信息
print MAIL $message;
close(MAIL);
print "邮件发送成功\n";

2.使用 MIME::Lite 模块
如果你使用的是 window 系统,没有 sendmail 工具。这时你就可以使用 perl 的 MIME:Lite 模块作为邮件客户端来发送邮件。
MIME:Lite 模块 下载地址为:MIME-Lite-3.030.tar.gz。
这里我们直接用 cpan 来安装(需要 root 权限),不用下载:
$ cpan -i MIME::Lite
……
/usr/bin/make install -- OK
安装成功后,我们来演示一个实例:
#!/usr/bin/perl
use MIME::Lite;
# 接收邮箱
$to = '123@qq.com';
# 抄送者,多个使用逗号隔开
# $cc = 'test1@qq.com, test2@qq.com';
#发送者邮箱
$from = 'test@qq.com';
#标题
$subject = 'Perl 发送邮件测试';
$message = '这是一封使用 Perl 发送的邮件,使用了 MIME::Lite 模块。';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->send;
print "邮件发送成功\n";

2.1 发送 HTML 格式邮件
我们可以在邮件头部添加 Content-type: text/html\n 来发送 HTML 格式的邮件,实例如下

2.2 发送带有附件的邮件
发送带有附件的邮件实例如下:

实例
#!/usr/bin/perl
use MIME::Lite;
# 接收者邮箱
$to = '123@qq.com';
# 抄送者,多个使用逗号隔开
# $cc = 'test1@qq.com, test2@qq.com';
#发送者邮箱
$from = 'test@qq.com';
#标题
$subject = 'Perl 发送邮件测试';
$message = '这是一封使用 Perl 发送的邮件,使用了 MIME::Lite 模块,包含了附件。';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Type => 'multipart/mixed' # 附件标记
);
$msg->attach (
Type => 'TEXT',
Data => $message
);
# 指定附件信息
$msg->attach(Type => 'TEXT',
Path => './runoob.txt', # 当前目录下
Filename => 'runoob.txt',
Disposition => 'attachment'
);
$msg->send;
print "邮件发送成功\n";

你可以通过使用多个 $msg->attach 来添加多个附件。

21-Perl 发送邮件的更多相关文章

  1. 用Perl发送邮件小例子

    据传,Perl发送邮件有很多方案,但我只会用Mail::Sender这种方式,也就只能简单谈谈这种方式. 在参考众多网页后,程序书写如下: #!/usr/bin/perl -w use Mail::S ...

  2. python学习(21) smtp发送邮件

    原文链接: https://www.jianshu.com/p/369ec15bfe22 本文介绍python发送邮件模块smtplib以及相关MIME模块.smtplib用于生成邮件发送的代理,发送 ...

  3. Perl脚本学习经验(四)--Perl中sftp的使用

    使用sftp,需要使用Except模块,该模块需要下载安装在perl目录下,可以上http://www.cpan.org/上下载对应的安装包:1. 用root用户登录环境:2. cd /usr/lib ...

  4. Perl系列文章

    0.Perl书籍推荐 Perl书籍下载 密码:kkqx 下面是一些我学习Perl过程中读过完整的或部分章节的觉得好的书. 入门级别1:<Perl语言入门>即小骆驼 入门级别2:<In ...

  5. 使用perl发邮件

    如果你使用的是 window 系统,没有 sendmail 工具.这时你就可以使用 perl 的 MIME:Lite 模块作为邮件客户端来发送邮件. 这里我们直接用 cpan 来安装(需要 root ...

  6. Node.js 网页爬虫再进阶,cheerio助力

    任务还是读取博文标题. 读取app2.js // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // cheerio模块, ...

  7. nginx 基础文档

    Nginx基础 1.  nginx安装 2.  nginx 编译参数详解 3.  nginx安装配置+清缓存模块安装 4.  nginx+PHP 5.5 5.  nginx配置虚拟主机 6.  ngi ...

  8. [nginx] 网上最全面nginx教程(近100篇文章整理)

    转载:http://bbs.linuxtone.org/thread-25588-1-1.html Nginx基础 1.  nginx安装 2.  nginx 编译参数详解 3.  nginx安装配置 ...

  9. 后台管理系统之邮件开发(Java实现)

    一,功能点 后台管理系统,添加用户时.对注册的新用户邮箱发送初始密码. 二,代码实现 1.Mail实体类 public class Mail { private Set<String> r ...

随机推荐

  1. 对于join操作,MySQL它是咋做的?

    首先我们对于join操作,需要了解两个概念:驱动表和被驱动表.首先先给出两张表: CREATE TABLE `t2` ( `id` ) NOT NULL, `a` ) DEFAULT NULL, `b ...

  2. Flume-安装与 NetCat UDP Source 监控端口

    Flume 文档:https://flume.apache.org/FlumeUserGuide.html Flume 下载:https://archive.apache.org/dist/flume ...

  3. ansiblle---roles

    使用ansible中的roles来管理主机. 剧本中的roles你现在已经学过 tasks 和 handlers,那怎样组织 playbook 才是最好的方式呢?简单的回答就是:使用 roles ! ...

  4. Django中三种方式写form表单

    除了在html中自己手写form表单外,django还可以通过 继承django.forms.Form 或django.forms.ModelForm两个类来自动生成form表单,下面依次利用三种方式 ...

  5. leetcode 146. LRU Cache 、460. LFU Cache

    LRU算法是首先淘汰最长时间未被使用的页面,而LFU是先淘汰一定时间内被访问次数最少的页面,如果存在使用频度相同的多个项目,则移除最近最少使用(Least Recently Used)的项目. LFU ...

  6. easuUI之datebox日期选择框

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  7. Mysql - 面试题 获取每个学生的最高成绩

    题目 如下一个表, 三列, 姓名, 课程, 以及成绩, 现在想要得到知道每个学生最高成绩的课程名字. 解题

  8. Java面试题准备(掌握)

    1.使用什么方式进行文件上传? 一般使用FormData对象,ajax异步上传. 为什么使用? 1.FormData对象Mozilla上的介绍的,XMLHttpRequest Level 2添加了一个 ...

  9. Ubuntu防火墙常用命令

    Ubuntu默认防火墙安装.启用.配置.端口.查看状态相关信息 最简单的一个操作: sudo ufw status(如果你是root,则去掉sudo,ufw status)可检查防火墙的状态,我的返回 ...

  10. django中CBV加csrf_exempt函数问题

    CSRF Token相关装饰器在CBV只能加到dispatch方法上 备注: 1. csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件. 2. c ...