Issue #7092: Fix the DeprecationWarnings emitted by the standard library
[python.git] / Doc / library / smtpd.rst
blob276751634d1abaff6c3565580f72c9bcbf1440f9
1 :mod:`smtpd` --- SMTP Server
2 ============================
4 .. module:: smtpd
5    :synopsis: A SMTP server implementation in Python.
7 .. moduleauthor:: Barry Warsaw <barry@zope.com>
8 .. sectionauthor:: Moshe Zadka <moshez@moshez.org>
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.
18 SMTPServer Objects
19 ------------------
22 .. class:: SMTPServer(localaddr, remoteaddr)
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.
30    .. method:: process_message(peer, mailfrom, rcpttos, data)
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).
41 DebuggingServer Objects
42 -----------------------
45 .. class:: DebuggingServer(localaddr, remoteaddr)
47    Create a new debugging server.  Arguments are as per :class:`SMTPServer`.
48    Messages will be discarded, and printed on stdout.
51 PureProxy Objects
52 -----------------
55 .. class:: PureProxy(localaddr, remoteaddr)
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.
62 MailmanProxy Objects
63 --------------------
66 .. class:: MailmanProxy(localaddr, remoteaddr)
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.