静岡県の一戸建てのアイムホーム松尾工務店

静岡県の一戸建て・工務店の「アイムホーム松尾工務店」は親切丁寧な地域密着型の会社。ローコスト住宅で有名な「アイムホーム松尾工務店」へ!

奈良の注文住宅ならエーティーエム建築

奈良の注文住宅はSE構法である「重量木骨の家」。自然素材の断熱材セルロースファイバーの注文住宅(奈良)ならエーティエム建築へ!

滋賀県の工務店・住宅ならエールコーポレーション

滋賀県の工務店,住宅の「エールコーポレーション」は完全自由設計の一戸建てが自慢。一生に一度の大切な買い物は安心の滋賀県の工務店,住宅の「エールコーポレーション」へ!

千葉県(船橋市,習志野市,市川市,鎌ヶ谷市)の不動産ならアトムステーション東船橋支店

千葉県(船橋市,習志野市,市川市,鎌ヶ谷市)の不動産ならアトムステーション東船橋支店。地域に密着し、お客様の満足する住まい探しのご提供を続けています。一戸建て・新築・中古・マンション・土地などを多数取扱い中。

  

モンスターカレンダー

« 2006年5月 »
12345678910111213141516171819202122232425262728293031

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;

もっとスマートな方法ご存知の方、ご指摘お願い致します。

トラックバック(1)

トラックバックURL: http://blog.trapple.net/mt/mt-tb.cgi/37

コメントする