NAME
Mail::Box::MH::Index - keep index files for messages.
CLASS INHERITANCE
Mail::Box::MH::Index is a Mail::Reporter
SYNOPSIS
my $index = Mail::Box::MH::Index->new;
$index->read(...)
$index->write(...)
DESCRIPTION
Message folders which store their data in one single file per message are very inefficient for producing subject overviews and for computing message threads. The Mail::Box::MH::Index object is able to store and read a the headers of all messages in one file.
When the Mail::Box::MH::Index functionality is enabled by specifying keep_index
when opening a folder, the index file is automatically read. When the folder is closed, a new index file is created.
Special care is taken to avoid problems which occur when the user changes or removes message files without updating the index. If the index is not trustworthy it will not be used (costing some performance for the reader of the folder).
METHODS
Initiation
- new OPTIONS
-
OPTION DEFAULT filename <obligatory> head_type 'Mail::Message::Head::Subset' head_wrap 72 log 'WARNINGS' trace 'WARNINGS'
- filename => FILENAME
-
The FILENAME which is used to store the headers of all the e-mails for one folder. This must be an absolute pathname.
- head_type => CLASS
-
The type of headers which will be used to store header information when it is read from the index file. You can not be sure the index contains all header line (the mailbox may have been updated without updating the index) so this will usually be (an sub-class of) Mail::Message::Head::Subset.
- head_wrap => INTEGER
-
The preferred number of character in each header line.
- log => LEVEL
-
See Mail::Reporter::new(log)
- trace => LEVEL
-
See Mail::Reporter::new(trace)
The Index
- filename
-
Returns the name of the index file.
- get MSGFILE
-
Look if there is header info for the specified MSGFILE. The filename represents one message in folder type which are organized as directory. This method will return an object of the
head_type
as specified during creation of the index object, orundef
if the information is not known or not trustworthy -i.e. the file size changed. - read
-
Read the index file. The header objects can after this be requested with the get() method.
- write MESSAGES
-
Write an index file containing the headers specified MESSAGES (Mail::Message objects).
Logging and Tracing
- errors
-
See Mail::Reporter::errors()
- log [LEVEL [,STRINGS]]
-
See Mail::Reporter::log()
- report [LEVEL]
-
See Mail::Reporter::report()
- reportAll [LEVEL]
-
See Mail::Reporter::reportAll()
- trace [LEVEL]
-
See Mail::Reporter::trace()
- warnings
-
See Mail::Reporter::warnings()
Other Methods
- AUTOLOAD
-
See Mail::Reporter::AUTOLOAD()
- DESTROY
-
See Mail::Reporter::DESTROY()
- inGlobalDestruction
-
See Mail::Reporter::inGlobalDestruction()
- logPriority LEVEL
-
See Mail::Reporter::logPriority()
- logSettings
-
See Mail::Reporter::logSettings()
- notImplemented
-
See Mail::Reporter::notImplemented()
SEE ALSO
A good start to read is Mail::Box-Overview. More documentation and a mailinglist are available from the project's website at http://perl.overmeer.net/mailbox/.
AUTHOR
Mark Overmeer (mark@overmeer.net) with the help of many.
VERSION
This code is beta, version 2.021.
Copyright (c) 2001-2002 Mark Overmeer. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.