Keep screened honeypot mail, but optionally discard honeypot only mail.
This commit is contained in:
@@ -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.19 2005/07/20 03:30:04 customdesigned
|
||||||
|
# Check pydspam version for honeypot, include latest pyspf changes.
|
||||||
|
#
|
||||||
# Revision 1.18 2005/07/17 01:25:44 customdesigned
|
# Revision 1.18 2005/07/17 01:25:44 customdesigned
|
||||||
# Log as well as use extended result for best guess.
|
# Log as well as use extended result for best guess.
|
||||||
#
|
#
|
||||||
@@ -697,7 +700,7 @@ class bmsMilter(Milter.Milter):
|
|||||||
receiver = self.receiver
|
receiver = self.receiver
|
||||||
q = spf.query(self.connectip,'@'.join(t),self.hello_name,receiver=receiver)
|
q = spf.query(self.connectip,'@'.join(t),self.hello_name,receiver=receiver)
|
||||||
q.set_default_explanation(
|
q.set_default_explanation(
|
||||||
'SPF fail: see http://spf.pobox.com/why.html?sender=%s&ip=%s' % (q.s,q.i))
|
'SPF fail: see http://openspf.com/why.html?sender=%s&ip=%s' % (q.s,q.i))
|
||||||
res,code,txt = q.check()
|
res,code,txt = q.check()
|
||||||
if res in ('none', 'softfail'):
|
if res in ('none', 'softfail'):
|
||||||
if self.mailfrom != '<>':
|
if self.mailfrom != '<>':
|
||||||
@@ -1075,8 +1078,15 @@ class bmsMilter(Milter.Milter):
|
|||||||
self.log("Large message:",len(txt))
|
self.log("Large message:",len(txt))
|
||||||
return False
|
return False
|
||||||
if user == 'honeypot' and Dspam.VERSION >= '1.1.9':
|
if user == 'honeypot' and Dspam.VERSION >= '1.1.9':
|
||||||
ds.check_spam(user,txt,force_result=dspam.DSR_ISSPAM)
|
keep = False # keep honeypot mail
|
||||||
self.log("HONEYPOT:",rcpt)
|
if len(self.recipients) > 1:
|
||||||
|
ds.check_spam(user,txt,self.recipients,quarantine=True,
|
||||||
|
force_result=dspam.DSR_ISSPAM)
|
||||||
|
self.log("HONEYPOT:",rcpt,'SCREENED')
|
||||||
|
else:
|
||||||
|
ds.check_spam(user,txt,self.recipients,quarantine=keep,
|
||||||
|
force_result=dspam.DSR_ISSPAM)
|
||||||
|
self.log("HONEYPOT:",rcpt)
|
||||||
self.fp = None
|
self.fp = None
|
||||||
return False
|
return False
|
||||||
txt = ds.check_spam(user,txt,self.recipients)
|
txt = ds.check_spam(user,txt,self.recipients)
|
||||||
|
|||||||
Reference in New Issue
Block a user