Perl 发送邮件学习笔记

Perl 提供了多种模块来发送电子邮件,常见的包括:Mail::Sendmail、MIME::Lite、Email::Sender 等。本文将以 Mail::Sendmail 为例,介绍如何使用 Perl 发送邮件。

安装 Mail::Sendmail 模块

安装 Mail::Sendmail 模块,可以使用 CPAN 安装:

shellCopy Code
$ cpan Mail::Sendmail

或者使用系统自带的包管理器,例如在 Ubuntu 系统中:

shellCopy Code
$ sudo apt-get install libmail-sendmail-perl

发送纯文本邮件实例

以下是使用 Mail::Sendmail 发送纯文本邮件的示例代码:

perlCopy Code
use Mail::Sendmail; my %mail = ( To => 'recipient@example.com', From => 'sender@example.com', Subject => 'Test email', Message => 'This is a test email sent by Perl!', ); sendmail(%mail) or die $Mail::Sendmail::error; print "Email sent successfully!\n";

发送带有附件的邮件实例

以下是使用 Mail::Sendmail 发送带有附件的邮件的示例代码:

perlCopy Code
use Mail::Sendmail; my %mail = ( To => 'recipient@example.com', From => 'sender@example.com', Subject => 'Test email with attachment', 'content-type' => 'multipart/mixed', ); # 添加文本部分 $mail{body} = "This is a test email sent by Perl!"; # 添加附件 my $attachment = '/path/to/attachment.pdf'; open my $fh, '<', $attachment or die "Cannot open $attachment: $!"; $mail{body} .= "\n"; $mail{body} .= "--attach_boundary\n"; $mail{body} .= "Content-Type: application/pdf; name=\"attachment.pdf\"\n"; $mail{body} .= "Content-Disposition: attachment; filename=\"attachment.pdf\"\n"; $mail{body} .= "Content-Transfer-Encoding: base64\n\n"; use MIME::Base64 qw(encode_base64); while (<$fh>) { $mail{body} .= encode_base64($_); } close $fh or die $!; $mail{body} .= "\n--attach_boundary--\n"; sendmail(%mail) or die $Mail::Sendmail::error; print "Email sent successfully!\n";

以上就是使用 Perl 发送邮件的简单示例,希望对你有所帮助。