symbian-qemu-0.9.1-12/python-2.6.1/Doc/library/smtpd.rst
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 :mod:`smtpd` --- SMTP Server
       
     2 ============================
       
     3 
       
     4 .. module:: smtpd
       
     5    :synopsis: A SMTP server implementation in Python.
       
     6 
       
     7 .. moduleauthor:: Barry Warsaw <barry@zope.com>
       
     8 .. sectionauthor:: Moshe Zadka <moshez@moshez.org>
       
     9 
       
    10 
       
    11 
       
    12 
       
    13 This module offers several classes to implement SMTP servers.  One is a generic
       
    14 do-nothing implementation, which can be overridden, while the other two offer
       
    15 specific mail-sending strategies.
       
    16 
       
    17 
       
    18 SMTPServer Objects
       
    19 ------------------
       
    20 
       
    21 
       
    22 .. class:: SMTPServer(localaddr, remoteaddr)
       
    23 
       
    24    Create a new :class:`SMTPServer` object, which binds to local address
       
    25    *localaddr*.  It will treat *remoteaddr* as an upstream SMTP relayer.  It
       
    26    inherits from :class:`asyncore.dispatcher`, and so will insert itself into
       
    27    :mod:`asyncore`'s event loop on instantiation.
       
    28 
       
    29 
       
    30    .. method:: process_message(peer, mailfrom, rcpttos, data)
       
    31 
       
    32       Raise :exc:`NotImplementedError` exception. Override this in subclasses to
       
    33       do something useful with this message. Whatever was passed in the
       
    34       constructor as *remoteaddr* will be available as the :attr:`_remoteaddr`
       
    35       attribute. *peer* is the remote host's address, *mailfrom* is the envelope
       
    36       originator, *rcpttos* are the envelope recipients and *data* is a string
       
    37       containing the contents of the e-mail (which should be in :rfc:`2822`
       
    38       format).
       
    39 
       
    40 
       
    41 DebuggingServer Objects
       
    42 -----------------------
       
    43 
       
    44 
       
    45 .. class:: DebuggingServer(localaddr, remoteaddr)
       
    46 
       
    47    Create a new debugging server.  Arguments are as per :class:`SMTPServer`.
       
    48    Messages will be discarded, and printed on stdout.
       
    49 
       
    50 
       
    51 PureProxy Objects
       
    52 -----------------
       
    53 
       
    54 
       
    55 .. class:: PureProxy(localaddr, remoteaddr)
       
    56 
       
    57    Create a new pure proxy server. Arguments are as per :class:`SMTPServer`.
       
    58    Everything will be relayed to *remoteaddr*.  Note that running this has a good
       
    59    chance to make you into an open relay, so please be careful.
       
    60 
       
    61 
       
    62 MailmanProxy Objects
       
    63 --------------------
       
    64 
       
    65 
       
    66 .. class:: MailmanProxy(localaddr, remoteaddr)
       
    67 
       
    68    Create a new pure proxy server. Arguments are as per :class:`SMTPServer`.
       
    69    Everything will be relayed to *remoteaddr*, unless local mailman configurations
       
    70    knows about an address, in which case it will be handled via mailman.  Note that
       
    71    running this has a good chance to make you into an open relay, so please be
       
    72    careful.
       
    73