smtpd — SMTP Server
Source code: Lib/smtpd.py
This module offers several classes to implement SMTP servers. One is a generic do-nothing implementation, which can be overridden, while the other two offer specific mail-sending strategies.
1. SMTPServer Objects
-
class smtpd.SMTPServer(localaddr, remoteaddr)
-
Create a new
SMTPServer
object, which binds to local address localaddr. It will treat remoteaddr as an upstream SMTP relayer. Both localaddr and remoteaddr should be a (host, port) tuple. The object inherits fromasyncore.dispatcher
, and so will insert itself intoasyncore
’s event loop on instantiation.-
process_message(peer, mailfrom, rcpttos, data)
-
Raise
NotImplementedError
exception. Override this in subclasses to do something useful with this message. Whatever was passed in the constructor as remoteaddr will be available as the_remoteaddr
attribute. peer is the remote host’s address, mailfrom is the envelope originator, rcpttos are the envelope recipients and data is a string containing the contents of the e-mail (which should be in RFC 2822 format).
-
2. DebuggingServer Objects
-
class smtpd.DebuggingServer(localaddr, remoteaddr)
-
Create a new debugging server. Arguments are as per
SMTPServer
. Messages will be discarded, and printed on stdout.
3. PureProxy Objects
-
class smtpd.PureProxy(localaddr, remoteaddr)
-
Create a new pure proxy server. Arguments are as per
SMTPServer
. Everything will be relayed to remoteaddr. Note that running this has a good chance to make you into an open relay, so please be careful.
4. MailmanProxy Objects
-
class smtpd.MailmanProxy(localaddr, remoteaddr)
-
Create a new pure proxy server. Arguments are as per
SMTPServer
. Everything will be relayed to remoteaddr, unless local mailman configurations knows about an address, in which case it will be handled via mailman. Note that running this has a good chance to make you into an open relay, so please be careful.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/smtpd.html