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 Codeuse 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 Codeuse 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 发送邮件的简单示例,希望对你有所帮助。