A base class that defines an interface for manipulating the head and
body of a message. There are various header object types
(Mail::Message::Heads) and a bunch of body object types
The Mail::Message::Construct package is loaded when more complex tasks have to be performed on messages, like creating replies, bounces, or a forward message. These functionalities are described and implemented in the ::Construct file, but are automatically added to the Mail::Message namespace when used.
Message types which are foreign to MailBox can be used in the MailBox environment: there are some converters implemented via Mail::Message::Convert. Particularly the popular Mail::Internet and MIME::Entity are supported.
|Mail::Box::Message||An abstract base class which defines an interface for mail messages which are stored in any folder. It inherits from Mail::Message, and adds the basic idea of location to a message.|
This is the base class for all message bodies. It describes what you
can do with any kind of body. The body types differ on the way how the
keep the body content during the run of your program.
One special case of the body types is the Mail::Message::Body::Multipart, which contains a set of Mail::Message::Part objects. These are just like normal messages, except that they are contained in an other message. The Mail::Message::Body::Nested body type is comparible, but contains only one message: they are used for message/rfc822 message encodings.
When needed, the functionality of the body objects is extended with Mail::Message::Body::Construct and Mail::Message::Body::Encode. The former package implements things like concatenation, the later controls message encoding and decoding. In the current implementation this is limited to transfer encodings (implemented in the Mail::Message::TransferEnc packages). Automatic character and mime recodings are on the wish-list.
The header for a single message. Maintains a set of Mail::Message::Field
objects, each containing one header line. Fields are the only
objects which have no logging and tracing facilities, purely for reasons
The header object has three sub-classes: the Mail::Message::Head::Complete version knows all lines for sure, Mail::Message::Head::Subset maintains an unknown subset of lines, and the Mail::Message::Head::Delayed has no lines yet but knows where to get them.
The latter two will automatically get the missing header lines from the mailbox files when needed, and so transform into a ::Complete header. It is fully transparent to the user of MailBox in which shape the header really is on the moment.
Mail::Box A base class that defines a standard interface for mail boxes which is independent of mailbox type. Objects of this class contain a Mail::Box::Locker and a list of Mail::Box::Message objects. Mail::Box::Dir The base class for all folders which use a directory organization: each message is a separate entity (file) grouped in a directory. Each Mail::Box::Dir::Message represents one message, one such entity. Mail::Box::Net The base class for all folders which have the messages outside direct reach of the MailBox library, for instance on a remote system, or in a database. Mail::Box::Mbox This class derives from Mail::Box, and implements its interface for mbox-style folders. It maintains a set of Mail::Box::Mbox::Message objects, which are derived from a Mail::Box::Message.
Mbox-style folders have one file containing multiple messages per folder. When folders get large, access tends to get slow.
Mail::Box::MH This class derives from Mail::Box::Dir, and implements its interface for MH-style folders. It maintains a set of Mail::Box::MH::Message objects, which are derived from a Mail::Box::Dir::Message.
MH-style folders are represented by a directory, where each message is stored in a separate file. The message files are sequentially numbered. It is fast to open one single message, but hard to get an overview.
Mail::Box::MH::Index The base class for MH mailbox indexes which provides methods for reading, writing, and managing message indexes. These indexes are used to speed-up access to directory based folders. Mail::Box::MH::Labels Also for efficiency reasons, a separate file is maintained which contains flags about the messages. This file for instance lists new files. This way, the MH message files do not have to be opened to find that out. Mail::Box::Maildir Like the MH folder type, this class derives from Mail::Box::Dir. It implements its interface for Maildir-style folders. It maintains a set of Mail::Box::Maildir::Message objects, which are derived from a Mail::Box::Dir::Message. Mail::Box::POP3 Implements the POP3 protocol based on Mail::Box::Net. The Mail::Transport::POP3 implementation handles the protocol details. In this kind of folders, you can only read and delete messages.
All classes are written to be extensible.
Mail::Box::Thread::Manager Maintains a set of message-threads over one or more folders. A message-thread is a start message with all the replies on it. And the replies on replies, and so on. This object is used to construct the thread for a set of open folders. Mail::Box::Locker Provides a folder locking interface which is inherited by the Mail::Box class. Currently it supports dot-file locking (filename.lock), flock filehandle locking, and locking over NFS. Each is implemented in a separate class. A multi-locker, using a set of lock-methods at the same time is also available. Mail::Box::Search The set of search packages implement various search techniques in an uniformal way. Although implementing your own search algorithm is simple in general, in practice multiparts, encodings, and mime-types complicate things. Mail::Box::Parser The parser reads messages, and transforms them into data-structures such that the content of header and body can be used within the program. The first parser is implemented in pure Perl. A second parser is under development, and will written in C, to gain speed. Mail::Box::Tie Provides hash (Mail::Box::Tie::HASH) or array tied (Mail::Box::Tie::ARRAY) access to any mail folder derived from Mail::Box. This beautifies your code in some applications. Mail::Transport Various ways of sending and receiving messages are implemented. Sending is possible via external programs, like mail, Mailx, sendmail, or autonomously with direct SMTP. Receiving is currently only implemented via POP3. Mail::Reporter A debugging and logging class which is inherited by most of the Mail:: modules. For each object, you can say what log and error reports must be kept or directly presented to the user. This way you can decide to have Mail::Box report about problems, or do it all yourself.
This module is part of Mail-Box distribution version 2.109, built on August 19, 2013. Website: http://perl.overmeer.net/mailbox/
Copyrights 2001-2013 by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html
|perl v5.20.3||MAIL::BOX-OVERVIEW (3)||2013-08-19|