NAME

Email::Archive::Storage::DBIC - write emails to relational databases

SYNOPSIS

Email::Archive::Storage::DBIC is a storage engine for Email::Archive to store emails in databases utilizing DBIx::Class.

All methods should work like documented in Email::Archive. Construction is slightly different as you have to tell Email::Archive to use the storage.

my $dbic_archive = Email::Archive->new(
    storage => Email::Archive::Storage::DBIC->new,
);

METHODS

connect

Takes a DBI connection string as parameter.

$email_archive->connect('dbi:SQLite:dbname=emails');

For more information see DBI documentation.

If the database schema does not exist it will be deployed automatically by the connect method.

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.

$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.