In article <[EMAIL PROTECTED]> you write: > Hi, > > I'm trying to figure out how to adjust Nikolay Kim's smtpserver code > <http://cvs.sourceforge.net/viewcvs.py/collective/smtpserver/> so that > objects within the ZODB can affect the way that messages are received > (i.e. veto messages based on certain criteria in the first instance). > > My problem is that I don't quite know how to get hold of the ZODB objects. > As far as I can tell, Nikolay's > smtpserver.SMTPServer.SMTPChannel.process_message method uses > ZServer.PubCore.handle to make the connection, but I don't really > understand how this all works. > > What I really want to be able to do from the server code is something like:: > > root = magic_that_gets_me_zodb_root()
That magic is basically (from memory): import Zope Zope.startup() root = Zope.app() But note that starting up a zope is slow, so you don't want to do that very often. Florent > account_manager = root['Control_Panel']['AccountManager'] > account_manager.checkAccepts(msg) > > I want calls like that to checkAccepts(msg) to be made a several points in > the SMTP session - say after each of the SMTP commands RCPT, MAIL, DATA, > etc. I only mention that in case there are implications for some > transaction jiggery-pokery (although I don't expect any of the > checkAccepts() type calls to need to write to the ZODB). > > Any pointers much appreciated. > > > tim > _______________________________________________ > Zope-Dev maillist - [EMAIL PROTECTED] > http://mail.zope.org/mailman/listinfo/zope-dev > ** No cross posts or HTML encoding! ** > (Related lists - > http://mail.zope.org/mailman/listinfo/zope-announce > http://mail.zope.org/mailman/listinfo/zope ) > -- Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D +33 1 40 33 71 59 http://nuxeo.com [EMAIL PROTECTED] _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
