[Zope] Tracking Mailing Lists with Zope.

Paul Everitt paul@digicool.com
Sun, 07 Nov 1999 10:56:29 -0500


One of the first things to decide is how you want to manage your data. 
I believe there are at least three choices:

1) Push the emails into Zope.  Subscribe an account to the list.  When a
mail message comes in, get the alias to run a program that loads the
email into Zope (e.g. ZClient, xml-rpc, WebDAV, etc.)  Advantages: the
archive is always up to date.  Disadvantage: somewhat intrusive on the
system.

2) Pull the emails into Zope.  Subscribe an account to the list and make
it available on a POP or IMAP server.  Write some Python (e.g. as an
External Method) that pulls the data into Zope.  Advantages: can archive
any mailbox accessible by POP or IMAP, chance of dropping data reduced. 
Disadvantages: still need to write something (e.g. a cron job or sleeper
thread) that notifies Zope to do the work.

3) Keep the data out of Zope.  The "NotMail" unsupported product doesn't
keep message data in Zope.  Rather, it leaves it on the IMAP server. 
Searches are done using the IMAP server's search facility.  Advantages:
mostly simple.  Disadvantages: throws out much of Zope's capability,
slow IMAP performance (and load).

If you decide to pull the data into Zope, you'll want to model at least
a MailMessage class for storing emails in the object database.  You can
do this either as a ZClass or a Python Product.  You might have other
abstractions as well.  For instance, if you want to support multiple
mailboxes (or IMAP folders), you'll want a class for that.  (Q: do you
want cross mailbox searches?)

At this point you have your objects getting into Zope on a regular
basis.  To do searching, you have two routes.

1) Let ZCatalog can "find" the objects to index.  On an occassional
basis, a ZCatalog will go through all the MailMessages looking for adds,
edits, or deletes.  Simple but resource intensive.

2) Make your objects ZCatalog-aware.  This means that both the container
of the MailMessages and the MailMessages themselves "tell" the ZCatalog
when there has been a change.  For more information on this, go to
Zope.org, click on Search, and look for How-To content containing
ZCatalog:

 
http://www.zope.org/SiteIndex/search?text_content=ZCatalog&meta_type=How-To

Both Mike Pelletier and Michel Pelletier have done some tinkering with
indexing mail message archives.  Sounds like a good, long How-To.

Hope this helps.  As everybody on this list knows, when you get a
technical discussion from _me_, caveat emptor applies. :^)

--Paul

S Shah wrote:
> 
> Hi all,
> 
> We (a student group at UC Berkeley) are attempting to
> convert our site to Zope, but I am having difficulty
> figuring out mailing lists.
> 
> We use majordomo as our mailing list manager, and
> LWGate for a WWW interface.
> 
> One of the appeals of Zope was the possibility of
> being able to search these lists. But after scouring
> the Zope mailing list, I haven't been able to figure
> this out yet....2 questions:
> 
> 1.) How can I implement zope.org style (or web-based)
> archiving and reading of mailing lists?
> 
> 2.) How can I search these mailing lists?
> 
> ......oh and can I continue to use majordomo, or will
> we need to change our mailing list software?
> 
> I have read posts about "ZCatalog" and "email objects"
> , but I can't figure out how these relate.
> 
> thanks,
> sachin shah
> 
> __________________________________________________
> Do You Yahoo!?
> Bid and sell for free at http://auctions.yahoo.com
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
>           No cross posts or HTML encoding!
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )