mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
	
	
		
			64 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
|   | \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} |