Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help

       Mail::SpamAssassin::SQLBasedAddrList - SpamAssassin SQL Based Auto

	   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);

       A SQL based persistent address list implementation.

       See "Mail::SpamAssassin::PersistentAddrList" for	more information.

       Uses DBI::DBD module access to your favorite database (tested with
       MySQL, SQLite and PostgreSQL) to	store user auto-whitelists.

       The default table structure looks like this: CREATE TABLE awl (
	 username varchar(100) NOT NULL	default	'',
	 email varchar(255) NOT	NULL default '',
	 ip varchar(40)	NOT NULL default '',
	 msgcount int(11) NOT NULL default '0',
	 totscore float	NOT NULL default '0',
	 signedby varchar(255) NOT NULL	default	'',
	 PRIMARY KEY (username,email,signedby,ip) ) TYPE=MyISAM;

       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:






       see "Mail::SpamAssassin::Conf" for more information.

       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.

       public instance (Mail::SpamAssassin::SQLBasedAddrList) new_checker (\%

       Description: This method	is called to setup a new checker interface and
       return a	blessed	copy of	itself.	 Here is where we setup	the SQL
       database	connection based on the	config values.

       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.

       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.

       NOTE: This code uses a self referential SQL call	(ie set	foo = foo + 1)
       which is	supported by most modern database backends, but	not everything
       calling itself a	SQL database.

       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.

       public instance () finish ()

       Description: This method	provides the necessary cleanup for the address

       private instance	(String, String) _unpack_addr(string $addr)

       Description: This method	splits an autowhitelist	address	into it's two
       components, email and ip	address.

perl v5.32.0			  2020-Mail::SpamAssassin::SQLBasedAddrList(3)


Want to link to this manual page? Use this URL:

home | help