MIME-toolsのインストール
CentOS 4.4にMIME-toolsをインストールしたときのメモ。MIME-toolsはメール(MIME)解析のためのperlモジュールの集まり。
# wget http://search.cpan.org/CPAN/authors/id/D/DS/DSKOLL/MIME-tools-5.420.tar.gz # zcat MIME-tools-5.420.tar.gz | tar xvf - # cd MIME-tools-5.420 # perl Makefile.PL
上記を実行すると、必要なモジュール関連のメッセージが出力される。メッセージによるとこれをインストールするには、以下が必要になる。
- IO::Stringy: At least version 1.211
- Mail::Field: At least version 1.05
- Mail::Header: At least version 1.01
- Mail::Internet: At least version 1.0203
# cpan cpan> install IO::Stringy cpan> install Mail::Field
これにより、上記4つのモジュールがインストールされる。また、MIME::Base64は標準で入っているがバージョンが3.03よりも後がよいというメッセージのためにアップグレードする。
cpan> install MIME::Base64 cpan> quit # make distclean # perl Makefile.PL # make test # make install
これで以下のようにすると解析可能。以下では解析結果を出力しない(InCore)で画面表示する例。
#!/usr/bin/perl -w use MIME::Parser; $parser = new MIME::Parser; $parser->output_to_core(1); # default is false(0) $entity = $parser->parse(\*STDIN); $header = $entity->head; print "Multipart? = " . ($entity->is_multipart ? "YES" : "NO") . "\n"; print "Number parts: " . $entity->parts . "\n"; print "From: " . $header->get("from"); print "Subject: " . $header->get("subject"); print "----\n"; if ($entity->is_multipart) { foreach (0 .. 1) { print "Mime-Type: " . $entity->parts($_)->mime_type . "\n"; # print $entity->parts($_)->stringify_body; print $entity->parts($_)->bodyhandle->as_string; print "----\n"; } } else { print $entity->stringify_body; print "----\n"; }