A high level framework for using dspam from a python application. More...
Classes | |
class | DSpamDirectory |
Operations on the DSPAM directory. More... | |
Functions | |
def | file_lock |
def | create_signature_id |
Create a mostly unique tag for a signature. | |
def | put_signature |
Add signature to database. | |
def | _tag_part |
Add tag to a non-multipart message. | |
def | add_signature_tag |
Add DSPAM tag to message. | |
def | extract_signature_tags |
Extract all DSPAM tags from a message. | |
def | parse_groups |
Parse old group file. | |
def | convert_eol |
Convert message to unix end of line conventions. | |
Variables | |
string | VERSION = "1.3" |
tuple | _seq_lock = thread.allocate_lock() |
int | _seq = 0 |
A high level framework for using dspam from a python application.
The Dspam module currently hardwires the "hash" storage driver. This driver generally requires that your application have an effective group id of "mail", and have a umask that will allow other applications in the mail group read/write/execute access.
def Dspam._tag_part | ( | msg, | ||
sigkey | ||||
) | [private] |
Add tag to a non-multipart message.
def Dspam.add_signature_tag | ( | msg, | ||
sigkey, | ||||
prob = None , |
||||
factors = None | ||||
) |
Add DSPAM tag to message.
We do this the old htmlish way.
msg | the original message to tag | |
sigkey | the signature tag | |
prob | probability for X-Dspam-Score header field if supplied | |
factors | factors for X-Dspam-Factors header field if supplied |
def Dspam.convert_eol | ( | txt | ) |
Convert message to unix end of line conventions.
txt | the original message |
def Dspam.create_signature_id | ( | ) |
Create a mostly unique tag for a signature.
def Dspam.extract_signature_tags | ( | txt | ) |
Extract all DSPAM tags from a message.
def Dspam.parse_groups | ( | groupfile, | ||
dups = False | ||||
) |
Parse old group file.
This version parses the old dspam-2.6 group file, which we will keep around a while for compatibility. Syntax is very simple:
group1: user1,user2 group2: user1,user3,user4
returns the map:
{ 'user1': ['group1','group2'], 'user2': ['group1'], 'user3': ['group2'], 'user4': ['group2'] }
def Dspam.put_signature | ( | ds, | ||
sig, | ||||
sigfile = None | ||||
) |
Add signature to database.
By default, use the signature database provided by the dspam database driver. If sigfile is supplied, it is a bsdddb database that we manage ourselves (including purging old entries, since dspam no longer does that). I suspect we do not really need the bsddb option, but it is there for now.