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 - 邮件内容类型,默认使用对象的 displayFormatcharset

  • 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 相同的许可协议。