summaryrefslogtreecommitdiffstats
path: root/Lib/smtpd.py
Commit message (Collapse)AuthorAgeFilesLines
* Updated my email address to something that works <wink>.Barry Warsaw2004-07-121-1/+1
|
* remove debugging printSkip Montanaro2004-06-261-1/+0
|
* Allow classes from other modules to be specified at startup. For example,Skip Montanaro2004-06-261-2/+9
| | | | | | using the postfixproxy module from Spambayes you might start smtpd up like smtpd.py -c spambayes.postfixproxy.SpambayesProxy :8025 :8026
* smtp_RCPT(): Removed a somewhat embarrassing debugging line, found byBarry Warsaw2002-05-141-3/+0
| | | | | | Scot Stevenson. Could be a bug fix candidate, but probably doesn't matter much unless a certain blue-nosed cat suddenly becomes corporeal and starts emailing some stmp.py (sic) fronted mailer.
* SF #515021, print the refused list to the DEBUGSTREAM, so the parameter is usedNeal Norwitz2002-02-111-2/+2
| | | | Note: There is a TBD (aka FIXME) for how best to handle the refused addresses
* Two bug fixes for problems reported by Sverre:Barry Warsaw2001-11-041-1/+6
| | | | | | | | | __getaddr(): Watch out for empty addresses that can happen when something like "MAIL FROM:<CR>" is received. This avoids the IndexError and rightly returns an SMTP syntax error. parseargs(): We didn't handle the 2-arg case where both the localspec and the remotespec were provided on the command line.
* SMTPServer.__init__(): The asyncore.dispatcher base class has a methodBarry Warsaw2001-10-091-3/+1
| | | | set_reuse_addr() that does the setsockopt fiddling. Use it instead.
* SMTPServer.__init__(): Print the start information on the DEBUGSTREAMBarry Warsaw2001-10-051-1/+2
| | | | so that it can be suppressed.
* Script arguments localhost:localport and remotehost:remoteport are nowBarry Warsaw2001-10-041-18/+28
| | | | | | | | | | | | | optional, and default to `localhost' and ports 8025 and 25 respectively. SMTPChannel.__init__(): Calculate __fqdn using socket.getfqdn() instead of gethostby*() and friends. This allows us to run this script even if we don't have access to dns (assuming the localhost is configured properly). Also, restore my precious page breaks. Hands off, oh Whitespace Normalizer!
* found_terminator(): Add a debug print showing the data.Barry Warsaw2001-08-131-1/+2
|
* Remove unused import (PyChecker)Andrew M. Kuchling2001-08-131-1/+0
|
* Fix typo in exception name (UnimplementedError should beGuido van Rossum2001-04-151-2/+2
| | | | NotImplementedError) found by Neil Norwitz's PyChecker.
* Use != instead of <>. Sorry, Barry.Guido van Rossum2001-03-021-3/+3
|
* bunch more __all__ listsSkip Montanaro2001-02-151-0/+1
| | | | | | also modified check_all function to suppress all warnings since they aren't relevant to what this test is doing (allows quiet checking of regsub, for instance)
* Whitespace normalization.Tim Peters2001-02-091-9/+9
|
* Long ago, Guido suggested that I add this to the standard library.Barry Warsaw2001-01-311-0/+531
I'm now checking it in. I need to write some documentation for it, but I don't have time right now. Still, I wanted to get this into 2.1a2. # Overview: # # This file implements the minimal SMTP protocol as defined in RFC 821. It # has a hierarchy of classes which implement the backend functionality for the # smtpd. A number of classes are provided: # # SMTPServer - the base class for the backend. Raises an UnimplementedError # if you try to use it. # # DebuggingServer - simply prints each message it receives on stdout. # # PureProxy - Proxies all messages to a real smtpd which does final # delivery. One known problem with this class is that it doesn't handle # SMTP errors from the backend server at all. This should be fixed # (contributions are welcome!). # # MailmanProxy - An experimental hack to work with GNU Mailman # <www.list.org>. Using this server as your real incoming smtpd, your # mailhost will automatically recognize and accept mail destined to Mailman # lists when those lists are created. Every message not destined for a list # gets forwarded to a real backend smtpd, as with PureProxy. Again, errors # are not handled correctly yet.