MIME-Explode-0.09 > MIME::Explode
名前¶
MIME::Explode - MIMEメッセージを解体するためのPerl拡張
概要¶
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.mbox") or
die("Couldn't open file.mbox for reading: $!\n");
open(OUTPUT, ">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";
}
}
}
説明¶
MIME::ExplodeはシングルあるいはマルチパートのMIMEメッセージを 解析、デーコードし、そのデコードされた構成物を与えられたディレクトリに 出力するためのモジュールです。 つまりこのモジュールは、ユーザーがMIMEでエンコードされたeメール・ メッセージやメールボックスの添付ファイルを取り出すことを可能にします。
メソッド¶
new([, OPTION ...])¶
このメソッドは新しいMIME::Explodeオブジェクトを作成します。以下のキーを 利用することができます:
- output_dir
-
デコードされたファイルが置かれるディレクトリ
- mkdir => octal_number
-
値に8進数の数字が設定されていれば、output_dirディレクトリを作成します。 (例: mkdir => 0755).
- check_content_type => 0 あるいは 1
-
値が1に設定されると、ファイルのcontent-typeがチェックされます。
- decode_subject => 0 あるいは 1
-
値が1に設定されると、件名がリストにデコードされます。
$header->{'0.0'}->{subject}->{value} = [ARRAYREF]; $header->{'0.0'}->{subject}->{charset} = [ARRAYREF]; $subject = join("", @{$header->{'0.0'}->{subject}->{value}});
- exclude_types => [ARRAYREF]
-
指定されたcontent-typeのファイルを保存しません。
parse(FILEHANDLE, FILEHANDLE)¶
このメソッドはストリムを解析し、それを構成している要素に分割します。 このメソッドは全ての部品を持ったハッシュ・リファレンスを返します。 FILEHANDLEはBLOBへのリファレンスでなければなりません。 2番目の引数はオプションです。
nmsgs()¶
解析されたメッセージの数を返します。
作者¶
Henrique Dias <[email protected]>
参考資料¶
MIME::Tools, perl(1).
翻訳者¶
川合孝典 ([email protected])