From 939fc61df7562ac2fd9f2ca0e7ec52d66022a8ea Mon Sep 17 00:00:00 2001 From: Stuart Gathman <stuart@gathman.org> Date: Thu, 2 Jul 2009 19:41:12 +0000 Subject: [PATCH] Handle @ in localpart. --- Milter/__init__.py | 4 ++++ Milter/dsn.py | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Milter/__init__.py b/Milter/__init__.py index 217514e..2cf16f9 100755 --- a/Milter/__init__.py +++ b/Milter/__init__.py @@ -458,6 +458,10 @@ class Milter(Base): # This factory method is called for each connection to create the # python object that tracks the connection. It should return # an object derived from Milter.Base. +# +# Note that since python is dynamic, this variable can be changed while +# the milter is running: for instance, to a new subclass based on a +# change in configuration. factory = Milter ## @private diff --git a/Milter/dsn.py b/Milter/dsn.py index 290fdd0..64ab8a2 100644 --- a/Milter/dsn.py +++ b/Milter/dsn.py @@ -5,6 +5,9 @@ # Send DSNs, do call back verification, # and generate DSN messages from a template # $Log$ +# Revision 1.18 2009/06/10 18:01:59 customdesigned +# Doxygen updates +# # Revision 1.17 2009/05/20 20:08:44 customdesigned # Support non-DSN CBV (non-empty MAIL FROM) # @@ -79,7 +82,7 @@ def send_dsn(mailfrom,receiver,msg=None,timeout=600,session=None,ourfrom=''): Mailfrom is original sender we are sending DSN or CBV to. Receiver is the MTA sending the DSN. Return None for success or (code,msg) for failure.""" - user,domain = mailfrom.split('@') + user,domain = mailfrom.rsplit('@',1) if not session: session = dns.Session() try: mxlist = session.dns(domain,'MX') -- GitLab