私の知る限り、この独自の形式を処理するためのモジュールはありません。代わりに、標準のテンプレート システムに変換します。
my $template = <<'TEMPLATE';
Good morning, [% name %]!
Today is your first day at work. You have already received your universal login
credentials:
[% ldap_user %]
[% ldap_pass %]
It works for authenticating at the Web proxy, mail system, Jabber and internal
services. Change the password ASAP: <[% ldap_web %]>
--
Yours sincerely, the greeting daemon
TEMPLATE
use Text::Xslate qw();
my $text = Text::Xslate->new(syntax => 'TTerse')->render_string($template, {
name => 'New Bee',
ldap_user => 'nbee',
ldap_pass => 'CON-GLOM-O',
ldap_web => 'http://192.168.0.1:8080/',
});
MIME ツールキットを使用して電子メールを作成します。HTML/マルチパート/添付ファイルは
Courriel::Builderで簡単です:
use Courriel::Builder;
my $email = build_email(
subject('Welcome'),
from('no-reply@example.com'),
to('…'),
plain_body($text),
);
最後に、高度なライブラリEmail::Senderを使用して送信します。これにより、優れたエラー チェックが提供され、トランスポートを簡単に切り替えることができます。テストのためにローカル配信を実行します。
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP qw();
use Try::Tiny;
try {
sendmail(
$email,
{
transport => Email::Sender::Transport::SMTP->new({
host => 'smtp.example.invalid',
})
}
);
} catch {
warn "sending failed: $_";
};