[pod] [xml]

名前

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オブジェクトを作成します。以下のキーを 利用することができます:

parse(FILEHANDLE, FILEHANDLE)

このメソッドはストリムを解析し、それを構成している要素に分割します。 このメソッドは全ての部品を持ったハッシュ・リファレンスを返します。 FILEHANDLEはBLOBへのリファレンスでなければなりません。 2番目の引数はオプションです。

nmsgs()

解析されたメッセージの数を返します。

作者

Henrique Dias <hdias@esb.ucp.pt>

参考資料

MIME::Tools, perl(1).

翻訳者

川合孝典 (kwitknr@cpan.org)