Expanding MultipleQueueDir function
Errol Neal
eneal at dfi-intl.com
Tue Jun 13 05:57:50 IST 2006
I'm trying to expand the MultipleQueueDir function to make it a bit more
usable for my environment. I'm almost there, but it seems like something
in the code I've written isn't correct. Now mind you, I'm not a
Programmer so some of it may be terribly wrong. I reused a lot of what's
already in CustomConfig.pm.
my ($PriorityDomainListFile) =
'/etc/MailScanner/rules/prioritylist.conf';
use FileHandle;
sub InitMultipleQueueDir {
MailScanner::Log::InfoLog("Initialising list for domains receiving
priority service");
#"from %s", $PriorityDomainListFile);
my $listfile = new FileHandle;
unless($listfile->open("<$PriorityDomainListFile")) {
MailScanner::Log::WarnLog("Could not read list of domains for
priority service " .
"from %s", $PriorityDomainListFile);
return;
}
my($fh, $line, $PriorityDomainList);
$line = 0;
while (<$listfile>) {
$line++;
chomp;
#print STDERR "Line is \"$_\"\n";
s/#.*$//; # Strip comments
s/\S*:\S*//g; # Strip any words with ":" in them
s/^\s+//g; # Strip leading whitespace
s/^(\S+)\s.*$/$1/; # Use only the 1st word
s/^\*\@//; # Strip any leading "*@" they might have put in
#print STDERR "Line is \"$_\"\n";
next if /^$/; # Strip blank lines
$PriorityDomainList->{$listfile}{lc($_)} = 1; # Store the domains
return;
}
$fh->close();
MailScanner::Log::InfoLog("Read %d domains from %s", $line,
$PriorityDomainListFile);
}
sub EndMultipleQueueDir {
MailScanner::Log::InfoLog("Shutting down priority domain list");
}
sub MultipleQueueDir {
my($message, $PriorityDomainList) = @_;
#return 0 unless $message; # Sanity check the input
my(@todomain, $todomain, $isspam);
@todomain = @{$message->{todomain}};
$todomain = $todomain[0];
$isspam = $message->{isspam};
return '/var/spool/mqueue' unless $message;
return '/var/spool/mqueue.priority' if
$PriorityDomainList->{$todomain};
return '/var/spool/mqueue.spam' if $message->{$isspam};
# It is not in the list
return '/var/spool/mqueue';
}
Hopefully, you can get the picture of what I'm trying to do. Domains are
stored in the prioritylist.conf.
>From what I can tell, it's not getting beyond opening the file and
reading it.
Can someone help me get this working right?
TIA.
Errol Neal
More information about the MailScanner
mailing list