Perl - 邮件发送

首页 / Perl入门教程 / Perl - 邮件发送

发送Email消息

如果您使用的是Linux/Unix计算机,则只需在Perl程序中使用 sendmail 实用程序来发送电子邮件。这是一个示例脚本,可以将电子邮件发送到给定的电子邮件

#!/usr/bin/perl
 
$to='abcd@gmail.com';
$from='webmaster@yourdomain.com';
$subject='Test Email';
$message='This is test email sent by Perl Script';
 
open(MAIL, "|/usr/sbin/sendmail -t");
 
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
# Email Body
print MAIL $message;

close(MAIL);
print "Email Sent Successfully\n";

实际上,以上脚本是一个客户端电子邮件脚本,它将电子邮件并提交给在Linux/Unix计算机上本地运行的服务器。该脚本将不负责将电子邮件发送到实际目的地。因此,您必须确保电子邮件服务器已正确配置并在计算机上运行,​​才能将电子邮件发送到给定的电子邮件。

链接:https://www.learnfk.comhttps://www.learnfk.com/perl/perl-sending-email.html

来源:LearnFk无涯教程网

发送HTML消息

如果要使用sendmail发送HTML格式的电子邮件,则只需在电子邮件的标题部分添加 Content-type:text/html\n ,如下所示-

#!/usr/bin/perl
 
$to='abcd@gmail.com';
$from='webmaster@yourdomain.com';
$subject='Test Email';
$message='<h1>This is test email sent by Perl Script</h1>';
 
open(MAIL, "|/usr/sbin/sendmail -t");
 
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL "Content-type: text/html\n";
# Email Body
print MAIL $message;

close(MAIL);
print "Email Sent Successfully\n";

使用Lite模块

如果您在Windows计算机上工作,则将无法使用sendmail实用程序。但是您也可以使用MIME:Lite perl模块编写自己的电子邮件客户端。您可以从 MIME-Lite-3.01.tar.gz 并将其安装在Windows或Linux/Unix上。要安装它,请按照简单的步骤-

$tar xvfz MIME-Lite-3.01.tar.gz
$cd MIME-Lite-3.01
$perl Makefile.PL
$make
$make install

就是这样,您将在计算机上安装MIME::Lite模块。现在,您可以使用下面说明的简单脚本发送电子邮件。

无涯教程网

发送消息

现在下面是一个脚本,它将负责将电子邮件发送到给定的电子邮件-

#!/usr/bin/perl
use MIME::Lite;
 
$to='abcd@gmail.com';
$cc='efgh@mail.com';
$from='webmaster@yourdomain.com';
$subject='Test Email';
$message='This is test email sent by Perl Script';

$msg=MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );
                 
$msg->send;
print "Email Sent Successfully\n";

发送HTML消息

如果要使用sendmail发送HTML格式的电子邮件,则只需在电子邮件的标题部分添加 Content-type:text/html\n 。以下是脚本,它将负责发送HTML格式的电子邮件-

#!/usr/bin/perl
use MIME::Lite;
 
$to='abcd@gmail.com';
$cc='efgh@mail.com';
$from='webmaster@yourdomain.com';
$subject='Test Email';
$message='<h1>This is test email sent by Perl Script</h1>';

$msg=MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );
                 
$msg->attr("content-type" => "text/html");         
$msg->send;
print "Email Sent Successfully\n";

发送附件

如果您想发送附件,则以下脚本可达到目的-

#!/usr/bin/perl
use MIME::Lite;
 
$to='abcd@gmail.com';
$cc='efgh@mail.com';
$from='webmaster@yourdomain.com';
$subject='Test Email';
$message='This is test email sent by Perl Script';

$msg=MIME::Lite-=>new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Type     => 'multipart/mixed'
                 );
                 
# Add your text message.
$msg->attach(Type         => 'text',
             Data         => $message
             );
            
# Specify your file as attachement.
$msg->attach(Type         => 'image/gif',
             Path         => '/tmp/logo.gif',
             Filename     => 'logo.gif',
             Disposition  => 'attachment'
            );       
$msg->send;
print "Email Sent Successfully\n";

您可以使用attach()方法在电子邮件中附加任意数量的文件。

使用SMTP服务器

如果您的计算机未运行电子邮件服务器,则可以使用远程位置上可用的任何其他电子邮件服务器,比如可以使用QQ SMTP,网易SMTP第三方服务器

$msg->send('smtp', "smtp.myisp.net", AuthUser=>"id", AuthPass=>"password" );

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Go语言从入门到实战 -〔蔡超〕

浏览器工作原理与实践 -〔李兵〕

Flink核心技术与实战 -〔张利兵〕

陶辉的网络协议集训班02期 -〔陶辉〕

性能优化高手课 -〔尉刚强〕

如何读懂一首诗 -〔王天博〕

深入浅出分布式技术原理 -〔陈现麟〕

零基础GPT应用入门课 -〔林健(键盘)〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

好记忆不如烂笔头。留下您的足迹吧 :)