やっとPerlのエントリーが書けます。
Perlで日本語を含むPDFを生成する場合に便利そうなモジュールに中島 靖さん作成のPDFJというのがあります。
PDF自体の生成の方法は中島さんのサイトに多数サンプルがあるので割愛して、その生成したPDFをメールに添付して送る方法をまとめます。
メール送信側のmoduleにはMIME::Liteを使います。
PDFドキュメントオブジェクト$docからPDFの内容をスカラ変数に読み出します。
my $pdf;
open my $fh, '>', \$pdf;
$doc->print($fh);
close $fh;
MIME::Liteオブジェクトを「multipart/mixed」で生成します。
my $ENTITY = MIME::Lite->new(
From =>'from@trapple.net',
To =>'to@trapple.net',
Subject =>'メールタイトル',
Type => 'multipart/mixed',
);
メール本文をattachします。
$ENTITY->attach(
TYPE => 'text/plain; charset="iso-2022-jp"',
Data => $mail_body
);
先に作った$pdfをattachします。
$pdfはファイルハンドルではなく、スカラーなので、FH=>$pdfではなくDataを使います。
これにはまりました。
$ENTITY->attach(
Type => 'BINARY',
Filename => 'sample.pdf',
Encoding => 'base64',
Disposition => 'attachment',
Data => $pdf,
);
$ENTITY->send;
もっとスマートな方法ご存知の方、ご指摘お願い致します。


コメントする