PDFJを使ってメールにPDFを添付する
やっと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;
もっとスマートな方法ご存知の方、ご指摘お願い致します。
コメント
Blah-blah-blah. I don’t care about you opinion, your words mean nothing to me. I’m big, bad and always just.
投稿者: Flint | 2008年04月03日 18:55
Your blog is very informative, I have learned so much from it. It is like daily newspaper :). Added to favs.
投稿者: rick | 2008年04月09日 19:36