Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

GNU/Linux

CentOS 4.8

i386

Mail::SpamAssassin::SQLBasedAddrList(3pm)


Mail::SpamAssassin::SQLBasedAddrList

Mail::SpamAssassin::SQLBasedAddrList

NAME
SYNOPSIS
DESCRIPTION

NAME

Mail::SpamAssassin::SQLBasedAddrList − SpamAssassin SQL Based Auto Whitelist

SYNOPSIS

    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

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 NOT NULL ,
email VARCHAR NOT NULL ,
ip VARCHAR NOT NULL ,
count INT NOT NULL ,
totscore FLOAT NOT NULL ,
PRIMARY KEY
(username, email, ip) )

You’re 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 SQL database connection based on the config values.

get_addr_entry

public instance (\%) get_addr_entry (String $addr)

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.

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.

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.

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.



Mail::SpamAssassin::SQLBasedAddrList(3pm)