Do not CBV for internal domains.

This commit is contained in:
Stuart Gathman
2007-03-24 00:30:24 +00:00
parent 6936b599fe
commit dbba488d58
+12 -12
View File
@@ -1,6 +1,9 @@
#!/usr/bin/env python #!/usr/bin/env python
# A simple milter that has grown quite a bit. # A simple milter that has grown quite a bit.
# $Log$ # $Log$
# Revision 1.99 2007/03/23 22:39:10 customdesigned
# Get SMTP-Auth policy from access_file.
#
# Revision 1.98 2007/03/21 04:02:13 customdesigned # Revision 1.98 2007/03/21 04:02:13 customdesigned
# Properly log From: and Sender: # Properly log From: and Sender:
# #
@@ -675,19 +678,17 @@ class bmsMilter(Milter.Milter):
) )
self.fp.write('From %s %s\n' % (self.canon_from,time.ctime())) self.fp.write('From %s %s\n' % (self.canon_from,time.ctime()))
self.internal_domain = True
if len(t) == 2: if len(t) == 2:
user,domain = t user,domain = t
if not self.internal_connection:
if not self.trusted_relay:
for pat in internal_domains: for pat in internal_domains:
if fnmatchcase(domain,pat): if fnmatchcase(domain,pat): break
self.log("REJECT: spam from self",pat)
self.setreply('550','5.7.1','I hate talking to myself.')
return Milter.REJECT
else: else:
self.internal_domain = False
if self.internal_connection:
if self.user: if self.user:
p = SPFPolicy('%s@%s'%(self.user,domain)) p = SPFPolicy('%s@%s'%(self.user,domain))
policy = p.getPolicy('SMTP-Auth:') policy = p.getPolicy('smtp-auth:')
else: else:
policy = None policy = None
if policy: if policy:
@@ -699,10 +700,7 @@ class bmsMilter(Milter.Milter):
(self.user,self.canon_from) (self.user,self.canon_from)
) )
return Milter.REJECT return Milter.REJECT
elif internal_domains: elif internal_domains and not self.internal_domain:
for pat in internal_domains:
if fnmatchcase(domain,pat): break
else:
self.log("REJECT: zombie PC at ",self.connectip, self.log("REJECT: zombie PC at ",self.connectip,
" sending MAIL FROM ",self.canon_from) " sending MAIL FROM ",self.canon_from)
self.setreply('550','5.7.1', self.setreply('550','5.7.1',
@@ -1554,7 +1552,9 @@ class bmsMilter(Milter.Milter):
except Milter.error: except Milter.error:
self.addheader(name,val) # older sendmail can't insheader self.addheader(name,val) # older sendmail can't insheader
if self.cbv_needed: # do not send CBV to internal domains (since we'll just get
# the "Fraudulent MX" error).
if self.cbv_needed and not self.internal_domain:
q,res = self.cbv_needed q,res = self.cbv_needed
if res == 'softfail': if res == 'softfail':
template_name = 'softfail' template_name = 'softfail'