Chris Nehren > Email-Archive > Email::Archive::Storage::MongoDB

Download:
Email-Archive-0.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

NAME ^

Email::Archive::Storage::MongoDB - write emails to MongoDB

SYNOPSIS ^

Email::Archive::Storage::MongoDB is a storage engine for Email::Archive to store emails in a MongoDB database.

Construction and connecting to the database is slightly different from the default. The other methods should work like documented in Email::Archive.

    my $storage = Email::Archive::Storage::MongoDB->new(
        host       => $hostname,        # defaults to localhost
        port       => $port,            # defaults to 27017
        database   => $db_name,
        collection => $collection_name,
    );

    my $mongo_archive = Email::Archive->new(
        storage => $storage,
    );

Or my $mongo_archive = Email::Archive->new( storage => Email::Archive::Storage::MongoDB->new; );

The alternate construction needs a connection string passed to connect.

ATTRIBUTES ^

host

The database host to connect to. Default is localhost.

port

The port on the database host to connect to. Defaults to MongoDBs default port 27017.

database

A valid MongoDB database name. If the database does not exist it will be created.

collection

A MongoDB collection name. If the collection does not exist it will be created automatically.

METHODS ^

connect

If the storage was constructed passing all the needed arguments just connect.

    $mongo_archive->connect;

Alternative connection needs to have a connection string of the format host:port:database:collection and will override previously configured values.

    $mongo_archive->connect("$host:$port:$dbname:$collname");

store

    $email_archive->store($msg);

Where $msg could be anything feedable to Email::Abstract. That is a raw email, an Email::MIME object or even an Email::Abstract object.

The message will be stored in the messages table of the connected database.

search

    $email_archive->search($attributes);

Search the database for emails where $attributes is a hashref containing the fields to search and the values filter.

    $attributes = { from_addr => $addr };

Will return the first found result as Email::MIME object.

    $email_archive->search({ message_id => $some_id });

Is exactly the same as retrieval by Message-ID.

retrieve

    $email_archive->retrieve($msg_id);

Retrieve emails by Message-ID. Is a shortcut for

    $email_archive->search({ message_id => $some_id });

LICENSE ^

This library may be used under the same terms as Perl itself.

AUTHOR AND COPYRIGHT ^

Copyright (c) 2010, 2011 Chris Nehren apeiron@cpan.org.

syntax highlighting: