[Catmail] Backend implementation using Mail::IMAPClient and
Mail::Box - SpiraMail
Terence Monteiro
terence at deeproot.co.in
Tue Sep 9 12:19:16 BST 2008
Hello folks,
I'm Terence, a full time FOSS hacker based in Bangalore, who enjoys working
with Perl and Catalyst. For long, building a Catalyst based webmail has
been on my and my colleagues wishlist. We thus embarked on the SpiraMail
project http://code.deeproot.in/spiramail/ to implement this, but it came
to life very recently, after we saw the bounties on offer by the Cat folks.
We've been working on a OO backend, to be stitched by C::M::Adaptor for a
model, and decided to separate out backend functionality into a few classes
like IMAP, Connection, Folder, Mails and Mail to start with. To share my ideas:
* IMAP is the main backend class, which provides a connect method,
returning a Connection object.
* The Connection class has a get_folder method that returns a Folder object.
* The Folder class has get_messages method that returns a Mails object.
* The Mails class has count and next methods. The next method returns a
Mail object, and is used for iteration.
* The Mail class represents a single mail
We started writing the backend using Mail::IMAPClient, because of the
extensive set of methods available. We're happy that Matt has some nice
things to say about it. We saw Mail::Box, and thought it a good candidate
to use for message parsing, but we're currently stuck at extending Mark's
Mail::Box::IMAP4 and Mail::Box::IMAP4::Message to implement our Folder and
Mail classes.
We're happy to share ideas, snippets and code. Currently our code is on a
subversion repository accessed over SSH. We'll provide access over
anonymous HTTP soon and update you.
--
Thanks and Regards,
Terence Monteiro.
DeepRoot Linux,
Ph: +91 (80) 4112 4784 / 85.
More information about the Catmail
mailing list