NAME

MIME::Parser::TreeFiler - file messages into a directory tree

SYNOPSIS

### Place message parts in subdirectories of "/tmp/msgs":
$filer = MIME::Parser::TreeFiler->new("/tmp/msgs");  
$parser->filer($filer);

DESCRIPTION

This concrete subclass of MIME::Parser::Filer supports filing under a given directory, using one subdirectory per message, but with all message parts in the same directory.

PUBLIC INTERFACE

init BASEDIR

Instance method, initiallizer. Set the base directory which will contain the message directories. If used, then each parse of begins by creating a new subdirectory under BASEDIR where the actual parts of the message are placed.

base_dir

Instance method. Return the base directory we were created with, which is the parent of the directories created for each individual message.

create_message_subdirectory_name

Instance method, for subclasses only. A new message is being parsed; synthesize a name of a new subdirectory under the "base_dir" where the message will be placed.

The default creates a name like:

msg-{unixtime}-{process id}-{sequence number}

If you don't like this, subclass and override.

last_message_dir

Instance method. Return the last message directory set up by init_parse(). This lets you write code like this:

    $filer = new MIME::Parser::TreeFiler->("/tmp");
    $parser->filer($filer);
    ...
    $ent = eval { $parser->parse_open($msg); };   
    if (!$ent) {	 ### parse failed
	die "parse failed: garbage is in ".$parser->last_message_dir."\n";
	...
    } 
    else {               ### parse succeeded
	...do stuff...
    }
output_dir HEAD

Instance method, override. Returns the output directory for the entity with the given HEAD; this will be used by output_path() to create the full path needed by the MIME::Parser.