Perl 发送邮件

如果你的程序在 Linux/Unix 系统上运行,你就可以在 Perl 中使用 sendmail 工具来发送邮件。

以下是一个简单的脚本实例用于发送邮件:

实例

#!/usr/bin/perl # 接收邮箱,这里我设置为我的 QQ 邮箱,你需要修改它为你自己的邮箱 $to = &qpos;429240967@qq.com&qpos;; #发送者邮箱 $from = &qpos;test@runoob.com&qpos;; #标题 $subject = &qpos;菜鸟教程 Perl 发送邮件测试&qpos;; $message = &qpos;这是一封使用 Perl 发送的邮件。&qpos;; open(MAIL, "|/usr/sbin/sendmail -t"); # 邮件头部 print MAIL "To: $to "; print MAIL "From: $from "; print MAIL "Subject: $subject "; # 邮箱信息 print MAIL $message; close(MAIL); print "邮件发送成功 ";

执行以上程序,输出结果为:


邮件发送成功

正常情况下,以上邮件会被 QQ 邮箱拦截,我么可以把它加入白名单,操作方式可以点击:https://kf.qq.com/faq/120322fu63YV130805rYRFzu.html

加入白名单后就可以正常接收邮件了。

发送 HTML 格式邮件

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

实例

#!/usr/bin/perl # 接收邮箱,这里我设置为我的 QQ 邮箱,你需要修改它为你自己的邮箱 $to = &qpos;429240967@qq.com&qpos;; #发送者邮箱 $from = &qpos;test@runoob.com&qpos;; #标题 $subject = &qpos;菜鸟教程 Perl 发送邮件测试&qpos;; $message = &qpos;<h1>这是一封使用 Perl 发送的邮件<h1><p>你好,我来自菜鸟教程,地址是:http://www.runoob.com。</p>&qpos;; open(MAIL, "|/usr/sbin/sendmail -t"); # 邮件头部 print MAIL "To: $to "; print MAIL "From: $from "; print MAIL "Subject: $subject "; print MAIL "Content-type: text/html "; # 邮箱信息 print MAIL $message; close(MAIL); print "邮件发送成功 ";

执行成功后,查看邮件内容,如下所示:


使用 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; # 接收邮箱,这里我设置为我的 QQ 邮箱,你需要修改它为你自己的邮箱 $to = &qpos;429240967@qq.com&qpos;; # 抄送者,多个使用逗号隔开 # $cc = &qpos;test1@runoob.com, test2@runoob.com&qpos;; #发送者邮箱 $from = &qpos;test@runoob.com&qpos;; #标题 $subject = &qpos;菜鸟教程 Perl 发送邮件测试&qpos;; $message = &qpos;这是一封使用 Perl 发送的邮件,使用了 MIME::Lite 模块。&qpos;; $msg = MIME::Lite->new( From => $from, To => $to, Cc => $cc, Subject => $subject, Data => $message ); $msg->send; print "邮件发送成功 ";

执行成功后,查看邮件内容,如下所示:

发送 HTML 格式邮件

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

实例

#!/usr/bin/perl use MIME::Lite; # 接收邮箱,这里我设置为我的 QQ 邮箱,你需要修改它为你自己的邮箱 $to = &qpos;429240967@qq.com&qpos;; # 抄送者,多个使用逗号隔开 # $cc = &qpos;test1@runoob.com, test2@runoob.com&qpos;; #发送者邮箱 $from = &qpos;test@runoob.com&qpos;; #标题 $subject = &qpos;菜鸟教程 Perl 发送邮件测试&qpos;; $message = &qpos;<h1>这是一封使用 Perl 发送的邮件<h1><p>使用了 MIME::Lite 模块。</p><p>来自菜鸟教程,地址是:http://www.runoob.com。</p>&qpos;; $msg = MIME::Lite->new( From => $from, To => $to, Cc => $cc, Subject => $subject, Data => $message ); # 添加头部信息 $msg->attr("content-type" => "text/html"); $msg->send; print "邮件发送成功 ";

执行成功后,查看邮件内容,如下所示:

发送带有附件的邮件

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

实例

#!/usr/bin/perl use MIME::Lite; # 接收邮箱,这里我设置为我的 QQ 邮箱,你需要修改它为你自己的邮箱 $to = &qpos;429240967@qq.com&qpos;; # 抄送者,多个使用逗号隔开 # $cc = &qpos;test1@runoob.com, test2@runoob.com&qpos;; #发送者邮箱 $from = &qpos;test@runoob.com&qpos;; #标题 $subject = &qpos;菜鸟教程 Perl 发送邮件测试&qpos;; $message = &qpos;这是一封使用 Perl 发送的邮件,使用了 MIME::Lite 模块,包含了附件。&qpos;; $msg = MIME::Lite->new( From => $from, To => $to, Cc => $cc, Subject => $subject, Type => &qpos;multipart/mixed&qpos; # 附件标记 ); $msg->attach ( Type => &qpos;TEXT&qpos;, Data => $message );# 指定附件信息 $msg->attach(Type => &qpos;TEXT&qpos;, Path => &qpos;./runoob.txt&qpos;, # 当前目录下 Filename => &qpos;runoob.txt&qpos;, Disposition => &qpos;attachment&qpos; ); $msg->send; print "邮件发送成功 ";

执行成功后,查看邮件内容,如下所示:

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

友情链接

搜外友链  |   维家  |   风淋室 >  |   明星排行  |   建筑规范文档  |   惠州保安公司  |   环保空调  |   咒术回战




意见反馈 ||  关于我们 ||  用户协议 ||  隐私保护 ||  商务合作

Copyright © 2020-2022 中华文学苑(华文苑) 京ICP备17037819号

Email:artype@163.com      QQ:262989474

加入华文苑qq群

Android下载