Custom Config
Mariano Absatz
mailscanner at LISTS.COM.AR
Tue Apr 27 22:13:48 IST 2004
Brian,
shouldn't you be putting a
my $dbh;
before all your SACustomCheck within the same file?
El 27 Apr 2004 a las 17:06, Webmaster escribió:
> That enables scanning for everyone. We host multiple domains, and I
> wanted the admins of those domains to be able to disable scannng for their
> domain only, the information being pulled from a database. I was able to
> resolve the problem though, the logging routine was killing it. All is
> working as expected now... If anyone wants to know:
>
> Virus Scanning = &SACustomCheck
> Spam Checks = &SACustomCheck
>
>
>
> Here are the functions for CustomConfig.pm
>
> sub InitSACustomCheck {
> return if defined $dbh;
>
> MailScanner::Log::InfoLog("Initializing database connection");
>
> $dbh = DBI->connect("DBI:mysql:database=$db_name;host=$db_host",
> $db_user, $db_pass,
> {PrintError => 0});
>
> if (!$dbh) {
> MailScanner::Log::WarnLog("Unable to initialize database connection:
> %s", $DBI::errstr);
> return;
> }
>
> MailScanner::Log::InfoLog("Finished initializing database connection");
> }
>
> sub EndSACustomCheck {
> $dbh->disconnect if defined $dbh;
> MailScanner::Log::InfoLog("Disconnected from the database");
> }
>
> sub SACustomCheck {
> my($message) = @_;
>
> return unless $message;
>
> if(!$dbh->ping) {
> undef $dbh;
> MailScanner::Log::InfoLog("Database ping failure attempting to
> re-connect");
> InitSACustomCheck();
> }
>
> return unless defined $dbh;
>
> foreach (@{$message->{to}}) {
> ($to, $domain)=split("\@", $_);
> push(@domains, "domain='$domain'");
> }
>
> $where=join(" OR ", @domains);
>
> my $sth = $dbh->prepare("SELECT value FROM custom_score WHERE
> opt='checks' AND ($where)");
> $sth->execute();
>
> # was there any options returned, if not, defauly yes
> if ($sth->rows == 0){
> $checks=1;
> }else{
> # if any domain is set to yes, it gets scanned
> while (my $ref = $sth->fetchrow_hashref()) {
> if ($ref->{'value'} eq "yes") {
> $checks=1;
> }
> }
> }
> # otherwise, no
> if ($checks != 1) {
> $checks=0;
> }
>
> return $checks;
>
> }
>
>
>
> Brian :)
>
>
>
> > Webmaster wrote:
> >> I am trying to do a custom function so each domain we host can have
> >> their
> >> own options. I was able to get the "Required SpamAssassin Score" option
> >> to work properly, I get the domain from the to address, get that domains
> >> score from a database, and return it. I tried to do the same thing with
> >> "Spam Checks", but it does not work, Ms seems to go into a loop. I
> >> tried
> >> the return value as 1 or 0 as the CostomCinfig.pm file said, even tried
> >> returning "yes" or "no", but no luck. Any ideas? Some of our customers
> >> have asked that we do not scan their mail at all (go figure, paranoid
> >> people)
> >
> > Wouldn't this do that?
> >
> > # If you want to be able to switch scanning on/off for different users or
> > # different domains, set this to the filename of a ruleset.
> > # This can also be the filename of a ruleset.
> > Virus Scanning = yes
> >
--
Mariano Absatz
El Baby
----------------------------------------------------------
Those who cannot remember the past are doomed to buy Microsoft products.
-------------------------- MailScanner list ----------------------
To leave, send leave mailscanner to jiscmail at jiscmail.ac.uk
For further info about MailScanner, please see the Most Asked
Questions at http://www.mailscanner.biz/maq/ and the archives
at http://www.jiscmail.ac.uk/lists/mailscanner.html
More information about the MailScanner
mailing list