Mail::SpamAssassin::SQLBasedAddrList (3)
Leading comments
Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) Standard preamble: ========================================================================
NAME
Mail::SpamAssassin::SQLBasedAddrList - SpamAssassin SQL Based Auto WhitelistSYNOPSIS
my $factory = Mail::SpamAssassin::SQLBasedAddrList->new() $spamtest->set_persistent_addr_list_factory ($factory); ... call into SpamAssassin classes...
SpamAssassin will call:
my $addrlist = $factory->new_checker($spamtest); $entry = $addrlist->get_addr_entry ($addr, $origip); ...
DESCRIPTION
ASee "Mail::SpamAssassin::PersistentAddrList" for more information.
Uses
The default table structure looks like this:
username varchar(100)
email varchar(255)
ip varchar(40)
count int(11)
totscore float
signedby varchar(255)
Your table definition may change depending on which database driver you choose. There is a config option to override the table name.
This module introduces several new config variables:
user_awl_dsn
user_awl_sql_username
user_awl_sql_password
user_awl_sql_table
user_awl_sql_override_username
see "Mail::SpamAssassin::Conf" for more information.
new
public class (Mail::SpamAssassin::SQLBasedAddrList) new ()Description: This method creates a new instance of the SQLBasedAddrList factory and calls the parent's (PersistentAddrList) new method.
new_checker
public instance (Mail::SpamAssassin::SQLBasedAddrList) new_checker (\% $main)Description: This method is called to setup a new checker interface and return a blessed copy of itself. Here is where we setup the
get_addr_entry
public instance (\%) get_addr_entry (String $addr, String $signedby)Description: This method takes a given $addr and splits it between the email address component and the ip component and performs a lookup in the database. If nothing is found in the database then a blank entry hash is created and returned, otherwise an entry containing the found information is returned. If a with_awl_signer configuration option is enabled only addresses signed by the given signing identity are taken into account, or, if $signedby is undefined (or empty) only unsigned entries are considered.
A key, "exists_p", is set to 1 if an entry already exists in the database, otherwise it is set to 0.
add_score
public instance (\%) add_score (\% $entry, Integer $score)Description: This method adds a given $score to a given $entry. If the entry was marked as not existing in the database then an entry will be inserted, otherwise a simple update will be performed.
remove_entry
public instance () remove_entry (\% $entry)Description: This method removes a given $entry from the database. If the ip portion of the entry address is equal to ``none'' then remove any perl-IP entries for this address as well.
finish
public instance () finish ()Description: This method provides the necessary cleanup for the address list.
_unpack_addr
private instance (String, String) _unpack_addr(string $addr)Description: This method splits an autowhitelist address into it's two components, email and ip address.