diff --git a/Milter/__init__.py b/Milter/__init__.py index f289636c306cbcc1a21b4fc7c603619eaa2634d9..f8e35eee3ff84eca7d0789d9c77fe113b8696735 100755 --- a/Milter/__init__.py +++ b/Milter/__init__.py @@ -9,7 +9,7 @@ import milter import thread from milter import ACCEPT,CONTINUE,REJECT,DISCARD,TEMPFAIL, \ - set_flags, setdbg, setbacklog, settimeout, \ + set_flags, setdbg, setbacklog, settimeout, error, \ ADDHDRS, CHGBODY, ADDRCPT, DELRCPT, CHGHDRS, \ V1_ACTS, V2_ACTS, CURR_ACTS diff --git a/Milter/dsn.py b/Milter/dsn.py index 723d3a07687da7a80041cd7f68b3f0f443897dfe..efdeef935786ee8c783a4b53e8069f454d967b9b 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.13 2007/01/04 18:01:11 customdesigned +# Do plain CBV when template missing. +# # Revision 1.12 2006/07/26 16:37:35 customdesigned # Support timeout. # @@ -28,8 +31,11 @@ def send_dsn(mailfrom,receiver,msg=None,timeout=600): Receiver is the MTA sending the DSN. Return None for success or (code,msg) for failure.""" user,domain = mailfrom.split('@') - q = spf.query(None,None,None) - mxlist = q.dns(domain,'MX') + try: + q = spf.query(None,None,None) + mxlist = q.dns(domain,'MX') + except spf.TempError: + return (450,'DNS Timeout: %s MX'%domain) # temp error if not mxlist: mxlist = (0,domain), # fallback to A record when no MX else: