PDK::Utils::Mail - 邮件发送工具类
简介
该模块基于 Mail::Sender,提供简单的邮件发送接口,支持 SMTP、收件人去重、字符编码自动识别等功能。
属性
- smtp
-
字符串类型,SMTP 服务器地址(必填)。
- from
-
字符串类型,发件人地址(必填)。
- charset
-
字符串类型,字符编码。 默认根据环境变量
LANG
自动推断,支持 utf8、gb2312 等。 若无法识别,则默认为 gb2312。 - displayFormat
-
字符串类型,邮件内容格式,默认值为
text/html
。
方法说明
sendmail(\%param | %param)
发送邮件。支持两种调用方式:传入哈希引用或参数列表。
支持参数:
smtp - SMTP 服务器地址(可覆盖对象默认值)
from - 发件人地址(可覆盖对象默认值)
to - 收件人地址,支持逗号或分号分隔,模块会自动去重
cc - 抄送地址(可选)
subject - 邮件主题
msg - 邮件正文
ctype - 邮件内容类型,默认使用对象的
displayFormat
与charset
encoding - 邮件正文编码方式,默认
quoted-printable
错误处理
缺少收件人地址会抛出异常。
邮件发送失败时,抛出 Carp::confess 异常,并包含错误信息。
使用示例
use PDK::Utils::Mail;
my $mailer = PDK::Utils::Mail->new(
smtp => 'smtp.example.com',
from => 'noreply@example.com',
);
eval {
$mailer->sendmail(
to => 'user1@example.com;user2@example.com',
cc => 'manager@example.com',
subject => '测试邮件',
msg => '<h1>Hello, World!</h1>',
);
};
if ($@) {
warn "邮件发送失败: $@";
}
作者
WENWU YAN <968828@gmail.com>
版权与许可
本模块遵循与 Perl 相同的许可协议。