On Thursday 10 July 2003 12:11 pm, Jesse Norell wrote:
> Hello,
>
> I'm currently working on (ie. not finished) amavisd-new + virus
> scan + spamassasin - amavisd-new can do database lookups for your
> preferences (scan or not, tag or delete or ...) and supports both
> white and blacklists. You might want to look into it (ie.
> amavisd-new - virus and/or spam scanning could be disabled if not
> desired). Though if all you want is a simple whitelist, a quickly
> written script like you suggested may be easier.
>
I have this all working. Here is my configuration for it. I am using the
dbmail tables modified to handle this stuff in amavisd-new. You will have
to modify the amavis script in order for this to work.
The schema I have in my dbmail database:
--
-- Table structure for table 'aliases'
--
CREATE TABLE aliases (
alias_idnr bigint(21) NOT NULL auto_increment,
alias varchar(100) NOT NULL default '',
deliver_to varchar(250) NOT NULL default '',
client_idnr bigint(21) NOT NULL default '0',
policy_id int(10) unsigned NOT NULL default '8',
priority int(10) NOT NULL default '7',
PRIMARY KEY (alias_idnr),
UNIQUE KEY alias_idnr_2 (alias_idnr),
KEY alias (alias),
KEY idx_alias (alias,deliver_to)
) TYPE=InnoDB;
--
-- Table structure for table 'mailaddr'
--
CREATE TABLE mailaddr (
id int(10) unsigned NOT NULL auto_increment,
priority int(10) NOT NULL default '7',
email varchar(255) NOT NULL default '',
PRIMARY KEY (id),
KEY email (email)
) TYPE=InnoDB;
--
-- Table structure for table 'policy'
--
CREATE TABLE policy (
id int(10) unsigned NOT NULL auto_increment,
policy_name varchar(64) default NULL,
bypass_virus_checks char(1) default NULL,
virus_lover char(1) default NULL,
banned_files_lover char(1) default NULL,
bypass_spam_checks char(1) default NULL,
spam_modifies_subj char(1) default NULL,
spam_tag_level float default NULL,
spam_tag2_level float default NULL,
spam_kill_level float default NULL,
PRIMARY KEY (id)
) TYPE=InnoDB;
--
-- Table structure for table 'wblist'
--
CREATE TABLE wblist (
rid int(10) unsigned NOT NULL default '0',
sid int(10) unsigned NOT NULL default '0',
wb char(1) NOT NULL default '',
PRIMARY KEY (rid,sid)
) TYPE=InnoDB;
SQL lookups to add in amavisd.conf:
$sql_select_policy = 'SELECT * FROM aliases,policy'.
' WHERE (aliases.policy_id=policy.id) AND (aliases.alias IN (%k))'.
' ORDER BY aliases.priority DESC';
$sql_select_white_black_list = 'SELECT wb FROM wblist,mailaddr'.
' WHERE (rid=?) AND (sid=mailaddr.id) AND (mailaddr.email IN (%k))'.
' ORDER BY mailaddr.priority DESC';
Changes to amavisd-new script:
Around line 4580:
my $nf = sub {Amavis::Lookup::SQLfield->new($sql_policy,@_)}; #shorthand
$user_id_sql = $nf->('alias_idnr', 'N');
$virus_lovers_sql = $nf->('virus_lover', 'B0');
Line changed is the middle one.
You still have to configure all the rest of amavisd-new to do the virus and
spam scanning, this will just get you the framework to get going.
--
Bret Baptist
Systems and Technical Support Specialist
[EMAIL PROTECTED]
Internet Exposure, Inc.
http://www.iexposure.com
(612)676-1946 x17
Web Development-Web Marketing-ISP Services
------------------------------------------
Today is the tomorrow you worried about yesterday.