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.