[Twisted-Python] Simple multiplex-relayer with

Mika Bostrom bostik at stinghorn.com
Mon Nov 29 03:08:15 EST 2004


On Fri, 26 Nov 2004, Jp Calderone wrote:
> On Fri, 26 Nov 2004 11:04:44 +0200, bostik at stinghorn.com (Mika Bostrom) wrote:
> > class RelayMessage(smtp.IMessage):
> >   def __init__(self):
> >     smtp.IMessage.__init__(self)
> >     self.msg =3D []
> > 
> 
>   The above class is the most obvious problem I see here.  Interfaces
>   are not meant to be subclassed in this manner.  What you really want
>   is something more like:

  [codelet snipped]

  Thank you, this was indeed the case. You also gave a a very solid rule
of thumb which will come in handy later on. "Interfaces are not meant to
be subclassed." (Yes, cut short; on purpose, as that will be easier to
remember.)

  Your advice also makes a nice example of how to use smtp module as a
base.
  
>   ESMTP will call getMessageDelivery on its deliveryFactory attribute,
>   now that it isn't None.  On the object it returns, it will call
>   receivedHeader, validateFrom, and validateTo.  And on the object
>   returned by calling the object returned by validateTo, it will pass
>   the contents of the message being delivered, letting you relay it
>   wherever is appropriate.

  This part felt a little like black magic, and my first reaction was
that of a scarred Delphi programmer: smelled a bit like excessive
nesting. Until I get a better grasp of what actually happens beneath the
hood, I'll just consider this a necessary evil.

  However, at least by your example and fixes the actual reception
works. I can carry on experimenting with what/how to do with the mail
from thereon.

>   Hope this helps,

  It certainly did. Thank you so much. I may return to list with
additional questions if your examples and hints have failed to enlighten
me after all.

  Take care,

-- 
 Mika Boström         \-/  "World peace will be achieved
 Bostik at stinghorn.com  X    when the last man has killed
 Software slave       /-\   the second-to-last." -anon?




More information about the Twisted-Python mailing list