From 2363e8fece04afb6b48aabea5bc061234b3df2ed Mon Sep 17 00:00:00 2001
From: Fred Drake <fdrake@acm.org>
Date: Sun, 11 Jul 2004 16:25:25 +0000
Subject: Added documentation for the "smtpd" module. Closes SF bug #450803.

---
 Doc/Makefile.deps    |  1 +
 Doc/lib/lib.tex      |  1 +
 Doc/lib/libsmtpd.tex | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 Doc/lib/libsmtpd.tex

diff --git a/Doc/Makefile.deps b/Doc/Makefile.deps
index 3f569ef..9ad5f19 100644
--- a/Doc/Makefile.deps
+++ b/Doc/Makefile.deps
@@ -288,6 +288,7 @@ LIBFILES= $(MANSTYLES) $(INDEXSTYLES) $(COMMONTEX) \
 	lib/libheapq.tex \
 	lib/libmimetypes.tex \
 	lib/libsmtplib.tex \
+	lib/libsmtpd.tex \
 	lib/libcmd.tex \
 	lib/libmultifile.tex \
 	lib/libthreading.tex \
diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex
index 4fe4f01..8895b57 100644
--- a/Doc/lib/lib.tex
+++ b/Doc/lib/lib.tex
@@ -228,6 +228,7 @@ and how to embed it in other applications.
 \input{libimaplib}
 \input{libnntplib}
 \input{libsmtplib}
+\input{libsmtpd}
 \input{libtelnetlib}
 \input{liburlparse}
 \input{libsocksvr}
diff --git a/Doc/lib/libsmtpd.tex b/Doc/lib/libsmtpd.tex
new file mode 100644
index 0000000..657050d
--- /dev/null
+++ b/Doc/lib/libsmtpd.tex
@@ -0,0 +1,63 @@
+\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}
-- 
cgit v0.12

