=encoding euc-jp =head1 名前 MIME::Explode - MIMEメッセージを解体するためのPerl拡張 =head1 概要 use MIME::Explode; my $explode = MIME::Explode->new( output_dir => "tmp", mkdir => 0755, decode_subject => 1, check_content_type => 1, exclude_types => ["image/gif", "image/jpeg", "image/png"], ); print "Number of messages: ", $explode->nmsgs, "\n"; open(MAIL, "file.tmp") or die("Couldn't open file.tmp for writing: $!\n"); my $headers = $explode->parse(\*MAIL, \*OUTPUT); close(OUTPUT); close(MAIL); for my $part (sort{ $a cmp $b } keys(%{$headers})) { for my $k (keys(%{$headers->{$part}})) { if(ref($headers->{$part}->{$k}) eq "ARRAY") { for my $i (0 .. $#{$headers->{$part}->{$k}}) { print "$part => $k => $i => ", $headers->{$part}->{$k}->[$i], "\n"; } } elsif(ref($headers->{$part}->{$k}) eq "HASH") { for my $ks (keys(%{$headers->{$part}->{$k}})) { if(ref($headers->{$part}->{$k}->{$ks}) eq "ARRAY") { print "$part => $k => $ks => ", join(($ks eq "charset") ? " " : "", @{$headers->{$part}->{$k}->{$ks}}), "\n"; } else { print "$part => $k => $ks => ", $headers->{$part}->{$k}->{$ks}, "\n"; } print "$part => $k => $ks => ", $headers->{$part}->{$k}->{$ks}, "\n"; } } else { print "$part => $k => ", $headers->{$part}->{$k}, "\n"; } } } =head1 説明 MIME::ExplodeはシングルあるいはマルチパートのMIMEメッセージを 解析、デーコードし、そのデコードされた構成物を与えられたディレクトリに 出力するためのモジュールです。 つまりこのモジュールは、ユーザーがMIMEでエンコードされたeメール・ メッセージやメールボックスの添付ファイルを取り出すことを可能にします。 =head1 メソッド =head2 new([, OPTION ...]) このメソッドは新しいMIME::Explodeオブジェクトを作成します。以下のキーを 利用することができます: =over 5 =item output_dir デコードされたファイルが置かれるディレクトリ =item mkdir => octal_number 値に8進数の数字が設定されていれば、output_dirディレクトリを作成します。 (例: mkdir => 0755). =item check_content_type => 0 あるいは 1 値が1に設定されると、ファイルのcontent-typeがチェックされます。 =item decode_subject => 0 あるいは 1 値が1に設定されると、件名がリストにデコードされます。 $header->{'0.0'}->{subject}->{value} = [ARRAYREF]; $header->{'0.0'}->{subject}->{charset} = [ARRAYREF]; $subject = join("", @{$header->{'0.0'}->{subject}->{value}}); =item exclude_types => [ARRAYREF] 指定されたcontent-typeのファイルを保存しません。 =back =head2 parse(FILEHANDLE, FILEHANDLE) このメソッドはストリムを解析し、それを構成している要素に分割します。 このメソッドは全ての部品を持ったハッシュ・リファレンスを返します。 FILEHANDLEはBLOBへのリファレンスでなければなりません。 2番目の引数はオプションです。 =head2 nmsgs() 解析されたメッセージの数を返します。 =head1 作者 Henrique Dias =head1 参考資料 MIME::Tools, perl(1). =head1 翻訳者 川合孝典 (kwitknr@cpan.org)