21-Perl 发送邮件
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 发送邮件的更多相关文章
- 用Perl发送邮件小例子
据传,Perl发送邮件有很多方案,但我只会用Mail::Sender这种方式,也就只能简单谈谈这种方式. 在参考众多网页后,程序书写如下: #!/usr/bin/perl -w use Mail::S ...
- python学习(21) smtp发送邮件
原文链接: https://www.jianshu.com/p/369ec15bfe22 本文介绍python发送邮件模块smtplib以及相关MIME模块.smtplib用于生成邮件发送的代理,发送 ...
- Perl脚本学习经验(四)--Perl中sftp的使用
使用sftp,需要使用Except模块,该模块需要下载安装在perl目录下,可以上http://www.cpan.org/上下载对应的安装包:1. 用root用户登录环境:2. cd /usr/lib ...
- Perl系列文章
0.Perl书籍推荐 Perl书籍下载 密码:kkqx 下面是一些我学习Perl过程中读过完整的或部分章节的觉得好的书. 入门级别1:<Perl语言入门>即小骆驼 入门级别2:<In ...
- 使用perl发邮件
如果你使用的是 window 系统,没有 sendmail 工具.这时你就可以使用 perl 的 MIME:Lite 模块作为邮件客户端来发送邮件. 这里我们直接用 cpan 来安装(需要 root ...
- Node.js 网页爬虫再进阶,cheerio助力
任务还是读取博文标题. 读取app2.js // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // cheerio模块, ...
- nginx 基础文档
Nginx基础 1. nginx安装 2. nginx 编译参数详解 3. nginx安装配置+清缓存模块安装 4. nginx+PHP 5.5 5. nginx配置虚拟主机 6. ngi ...
- [nginx] 网上最全面nginx教程(近100篇文章整理)
转载:http://bbs.linuxtone.org/thread-25588-1-1.html Nginx基础 1. nginx安装 2. nginx 编译参数详解 3. nginx安装配置 ...
- 后台管理系统之邮件开发(Java实现)
一,功能点 后台管理系统,添加用户时.对注册的新用户邮箱发送初始密码. 二,代码实现 1.Mail实体类 public class Mail { private Set<String> r ...
随机推荐
- FFmpeg之av_register_all()
1. av_register_all() 该函数位于 libavformat/allformats.c 中. 该函数主要是注册所有的编解码器.复用/解复用组件等. /* * Initialize li ...
- 基于DAT的中文分词方法的研究与实现
一.从Trie说起 DAT是Double Array Trie的缩写,说到DAT就必须先说一下trie是什么.Trie树是哈希树的一种,来自英文单词"Retrieval"的简写,可 ...
- 微信小程序 图片裁剪
微信小程序 图片裁剪 分享一个微信小程序图片裁剪插件,很好用,支持旋转 文档:https://github.com/wyh19931106/image-cropper 1.json文件中添加image ...
- kafka配置的问题排查
问题反馈: xx现场测试环境下,整个平台的数据,除了原始数据模块,其他模块正常运行.相同版本的包,在线上环境上原始数据的订阅是正常的,但是测试环境没有,查看所有相关的日志,均没有报异常,且日志中有正常 ...
- ora-01578
SQL> exec DBMS_STATS.GATHER_DATABASE_STATS; BEGIN DBMS_STATS.GATHER_DATABASE_STATS; END; * ERROR ...
- docker 搭建私有云盘 Seafile
缘起 现如今各种云存储服务其实挺多的,国外有经典的DropBox.Google Drive.微软的OneDrive等,国内也有可以免费使用的各种云. 那么为什么想要搭建私有云存储呢?主要是本着“自己的 ...
- 一百二十四:CMS系统之首页导航条和代码抽离
模板抽离 由于前后台的模板有些需要的元素如,js,css是相同的,这里抽离出来做base模板 {% from "common/_macros.html" import static ...
- springboot和jsp,以及引入jquery
包: src: main: java: resources: static: templates: test: 2.在static导入jquery源文件,在templates写入jsp文件 3.配置文 ...
- java数据结构之LinkedList
一.LinkedList源码注释 //LinkedList源码 jdk版本1.8.0_121 public class LinkedList<E> extends AbstractSequ ...
- python 粘包现象
一. 粘包现象 1. 粘包现象的由来(1)TCP属于长连接,当服务端与一个客户端进行了连接以后,其他客户端需要(排队)等待.若服务端想要连接另一个客户端,必须首先断开与第一个客户端的连接. (2)缓冲 ...