Zeta Components(eZ Components) Mailで一つのメールファイルの内容をパースしたい
PHPのライブラリ Zeta Components / Mail を使ってメールデータの Subject や From、添付ファイルなどを解析しようと思うのですが、付属のサンプルを見る限りメールボックス全体をパースする方法しかなく、単一のメールを読み込む方法に関する情報が見つかりませんでした。
<?php
$pop3 = new ezcMailPop3Transport( "pop3.example.com" );
$pop3->authenticate( "user", "password" );
$set = $pop3->fetchAll();
$parser = new ezcMailParser();
$mails = $parser->parseMail( $set );
上記サンプルではPOP3接続したすべてのメールがパースされます。
やりたいこととしては file_get_contents('php://input') あるいは file_get_contents('message.eml') によって受け取った一通のメールデータ文字列を元にパースしたいため、上記方法ではうまく行きません。
公式ドキュメントでは
The Mail component currently allows you to fetch and parse mail
messages from POP3, IMAP, mbox files, single mail files and from
variables.
と書かれているのでやり方があるように思えるのですがそういうためのものではないのでしょうか?
ちなみにですが下記のようにする事はできないようです。parseMail() に渡すことのできるオブジェクトは「ezcMailParserSet」に限られているようです。
<?php
$data = file_get_contents('message.ml');
$parser = new ezcMailParser();
$mail = $parser->parseMail( $data );
基本的には PEAR::Mail_mimeDecode の代用で、より誤判定が少なく開発の止まっていないものを使いたいと考えてこのライブラリを調べているところです。php-mime-mail-parser も良さそうだったのですが mailparse はインストール出来ない環境のため見送りました。
Zeta Components/Mail でファイルを読み込んでパースする方法や、このような目的を果たせる文字化けに強いライブラリ等ご存知でしたら教えて下さい。