Back to index

python3.2  3.2.2
Public Member Functions | Public Attributes | Static Public Attributes
smtpd.DebuggingServer Class Reference
Inheritance diagram for smtpd.DebuggingServer:
Inheritance graph
Collaboration diagram for smtpd.DebuggingServer:
Collaboration graph

List of all members.

Public Member Functions

def process_message
def handle_accepted
def __repr__
def add_channel
def del_channel
def create_socket
def set_socket

Public Attributes


Static Public Attributes

 channel_class = SMTPChannel
 debug = False
 connected = False
 accepting = False
 closing = False
 addr = None
tuple ignore_log_types = frozenset(['warning'])

Detailed Description

Definition at line 479 of file

Member Function Documentation

def asyncore.dispatcher.__repr__ (   self) [inherited]

Definition at line 264 of file

00265     def __repr__(self):
00266         status = [self.__class__.__module__+"."+self.__class__.__name__]
00267         if self.accepting and self.addr:
00268             status.append('listening')
00269         elif self.connected:
00270             status.append('connected')
00271         if self.addr is not None:
00272             try:
00273                 status.append('%s:%d' % self.addr)
00274             except TypeError:
00275                 status.append(repr(self.addr))
00276         return '<%s at %#x>' % (' '.join(status), id(self))

def asyncore.dispatcher.add_channel (   self,
  map = None 
) [inherited]

Definition at line 279 of file

00280     def add_channel(self, map=None):
00281         #self.log_info('adding channel %s' % self)
00282         if map is None:
00283             map = self._map
00284         map[self._fileno] = self

Here is the caller graph for this function:

def asyncore.dispatcher.create_socket (   self,
) [inherited]

Definition at line 294 of file

00295     def create_socket(self, family, type):
00296         self.family_and_type = family, type
00297         sock = socket.socket(family, type)
00298         sock.setblocking(0)
00299         self.set_socket(sock)

Here is the caller graph for this function:

def asyncore.dispatcher.del_channel (   self,
  map = None 
) [inherited]

Definition at line 285 of file

00286     def del_channel(self, map=None):
00287         fd = self._fileno
00288         if map is None:
00289             map = self._map
00290         if fd in map:
00291             #self.log_info('closing channel %d:%s' % (fd, self))
00292             del map[fd]
00293         self._fileno = None

Here is the caller graph for this function:

def smtpd.SMTPServer.handle_accepted (   self,
) [inherited]

Reimplemented in test.test_smtplib.SimSMTPServer.

Definition at line 448 of file

00449     def handle_accepted(self, conn, addr):
00450         print('Incoming connection from %s' % repr(addr), file=DEBUGSTREAM)
00451         channel = self.channel_class(self, conn, addr)

def smtpd.DebuggingServer.process_message (   self,
Override this abstract method to handle messages from the client.

peer is a tuple containing (ipaddr, port) of the client that made the
socket connection to our smtp port.

mailfrom is the raw address the client claims the message is coming

rcpttos is a list of raw addresses the client wishes to deliver the
message to.

data is a string containing the entire full text of the message,
headers (if supplied) and all.  It has been `de-transparencied'
according to RFC 821, Section 4.5.2.  In other words, a line
containing a `.' followed by other text has had the leading dot

This function should return None, for a normal `250 Ok' response;
otherwise it returns the desired response string in RFC 821 format.

Reimplemented from smtpd.SMTPServer.

Definition at line 481 of file

00482     def process_message(self, peer, mailfrom, rcpttos, data):
00483         inheaders = 1
00484         lines = data.split('\n')
00485         print('---------- MESSAGE FOLLOWS ----------')
00486         for line in lines:
00487             # headers first
00488             if inheaders and not line:
00489                 print('X-Peer:', peer[0])
00490                 inheaders = 0
00491             print(line)
00492         print('------------ END MESSAGE ------------')
def asyncore.dispatcher.set_socket (   self,
  map = None 
) [inherited]

Definition at line 300 of file

00301     def set_socket(self, sock, map=None):
        self.socket = sock

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

asyncore.dispatcher.accepting = False [static, inherited]

Definition at line 227 of file

asyncore.dispatcher.addr = None [static, inherited]

Reimplemented in smtpd.SMTPChannel.

Definition at line 229 of file

Definition at line 428 of file

asyncore.dispatcher.closing = False [static, inherited]

Definition at line 228 of file

asyncore.dispatcher.connected = False [static, inherited]

Reimplemented in asyncore.file_dispatcher.

Definition at line 226 of file

asyncore.dispatcher.debug = False [static, inherited]

Definition at line 225 of file

Definition at line 295 of file

tuple asyncore.dispatcher.ignore_log_types = frozenset(['warning']) [static, inherited]

Definition at line 230 of file

The documentation for this class was generated from the following file: