| \section{\module{smtpd} --- |
| SMTP Server} |
| |
| \declaremodule{standard}{smtpd} |
| |
| \moduleauthor{Barry Warsaw}{barry@zope.com} |
| \sectionauthor{Moshe Zadka}{moshez@moshez.org} |
| |
| \modulesynopsis{Implement a flexible SMTP server} |
| |
| 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. |
| |
| |
| \subsection{SMTPServer Objects} |
| |
| \begin{classdesc}{SMTPServer}{localaddr, remoteaddr} |
| Create a new \class{SMTPServer} object, which binds to local address |
| \var{localaddr}. It will treat \var{remoteaddr} as an upstream SMTP |
| relayer. It inherits from \class{asyncore.dispatcher}, and so will |
| insert itself into \refmodule{asyncore}'s event loop on instantiation. |
| \end{classdesc} |
| |
| \begin{methoddesc}[SMTPServer]{process_message}{peer, mailfrom, rcpttos, data} |
| Raise \exception{NotImplementedError} exception. Override this in |
| subclasses to do something useful with this message. Whatever was |
| passed in the constructor as \var{remoteaddr} will be available as the |
| \member{_remoteaddr} attribute. \var{peer} is the remote host's address, |
| \var{mailfrom} is the envelope originator, \var{rcpttos} are the |
| envelope recipients and \var{data} is a string containing the contents |
| of the e-mail (which should be in \rfc{2822} format). |
| \end{methoddesc} |
| |
| |
| \subsection{DebuggingServer Objects} |
| |
| \begin{classdesc}{DebuggingServer}{localaddr, remoteaddr} |
| Create a new debugging server. Arguments are as per |
| \class{SMTPServer}. Messages will be discarded, and printed on |
| stdout. |
| \end{classdesc} |
| |
| |
| \subsection{PureProxy Objects} |
| |
| \begin{classdesc}{PureProxy}{localaddr, remoteaddr} |
| Create a new pure proxy server. Arguments are as per \class{SMTPServer}. |
| Everything will be relayed to \var{remoteaddr}. Note that running |
| this has a good chance to make you into an open relay, so please be |
| careful. |
| \end{classdesc} |
| |
| |
| \subsection{MailmanProxy Objects} |
| |
| \begin{classdesc}{MailmanProxy}{localaddr, remoteaddr} |
| Create a new pure proxy server. Arguments are as per |
| \class{SMTPServer}. Everything will be relayed to \var{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. |
| \end{classdesc} |