- Perl 基础知识
- Perl - 主页
- Perl - 简介
- Perl - 环境
- Perl - 语法概述
- Perl - 数据类型
- Perl - 变量
- Perl - 标量
- Perl - 数组
- Perl - 哈希
- Perl - IF...ELSE
- Perl - 循环
- Perl - 运算符
- Perl - 日期和时间
- Perl - 子例程
- Perl - 参考资料
- Perl - 格式
- Perl - 文件 I/O
- Perl - 目录
- Perl - 错误处理
- Perl - 特殊变量
- Perl - 编码标准
- Perl - 正则表达式
- Perl - 发送电子邮件
- Perl 高级
- Perl - 套接字编程
- Perl - 面向对象
- Perl - 数据库访问
- Perl - CGI 编程
- Perl - 包和模块
- Perl - 流程管理
- Perl - 嵌入式文档
- Perl - 函数参考
- Perl 有用资源
- Perl - 问题与解答
- Perl - 快速指南
- Perl - 有用的资源
- Perl - 讨论
Perl - 发送电子邮件
使用 sendmail 实用程序
发送普通消息
如果您在 Linux/Unix 机器上工作,那么您可以简单地使用Perl 程序中的sendmail实用程序来发送电子邮件。下面是一个示例脚本,可以将电子邮件发送到给定的电子邮件 ID。只需确保 sendmail 实用程序的给定路径正确即可。对于您的 Linux/Unix 机器来说,这可能有所不同。
#!/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 计算机上本地运行的服务器。该脚本不负责将电子邮件发送到实际目的地。因此,您必须确保电子邮件服务器已正确配置并在您的计算机上运行,以将电子邮件发送到给定的电子邮件 ID。
发送 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";
使用 MIME::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 模块。现在您可以使用下面解释的简单脚本发送电子邮件。
发送普通消息
现在下面是一个脚本,它将负责将电子邮件发送到给定的电子邮件 ID -
#!/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 服务器
如果您的计算机未运行电子邮件服务器,则您可以使用远程位置可用的任何其他电子邮件服务器。但是要使用任何其他电子邮件服务器,您需要有一个 ID、密码、URL 等。一旦您拥有了所有必需的信息,您只需在 send() 方法中提供该信息,如下所示-
$msg->send('smtp', "smtp.myisp.net", AuthUser=>"id", AuthPass=>"password" );
您可以联系您的电子邮件服务器管理员以获取上述使用的信息,如果用户 ID 和密码尚不可用,那么您的管理员可以在几分钟内创建它。