Dear clapf-users,

besides the reporting/statistics issues (see my previous post), I would
like to inform you about the latest developments.

I made a heavy reorganisation of the source tree. Much of the code
moved to the src/ directory, and I tried to put every single file to a
proper destination.


Modified the history schema, and the maillog.pl script. So when
upgrading be sure to execute these sql statements on the history
database:

alter clapf add column rcpt char(64) default null;

drop index clapf_idx;

create index clapf_idx on clapf(queue_id, result, rcpt);

create view if not exists summary as select distinct clapf.queue_id, \
   clapf.ts, smtpd.client_ip, qmgr.`from_domain`, smtp.`to_domain`,  \
   smtp.`to`, clapf.result from smtp, smtpd, qmgr, clapf where \
   smtp.clapf_id=clapf.queue_id and smtpd.queue_id=smtp.queue_id and \
   qmgr.queue_id=smtp.queue_id;

Also modified the webui, to support some advanced reporting. Be sure to
run the setup utility as the config.php script also has some new
variables.

I have gathered all the possible clapf-related cron jobs to one place
(etc/cron.jobs). It requires you to adjust some paths.

I have obsoleted the spaminess_of_text_and_base64 config variable.
clapf will no longer mark a message as spam merely because it has a
base64 encoded textual part.

I have improved the tokeniser. It properly handles HTML entities like
&aacuate; and is able to skip preconfigured (via clapf.conf) relay
entries.

The tokeniser uses only the hostnames - having at least a single dot
(.) - and IP-addresses from the Received: lines. It's no use to create
tokens like "by", "from", "esmtp", "8.12.5", dates, etc.

Improved the zombie protection. If your smtp server is behind some
other servers that hands emails to you, then postfix will always pass
their hostname/IP-address to you via the XFORWARD mechanism.

So from now, you can define your smtp hosts have to be discarded, to
find out the real sender host. Let's say, you want to skip *localhost,
*.aaa.fu and *.gaaa.fu as well as 127.0.0.1, 195.56.111.1-255 and
84.15.1.8[0-9] in the Received: lines. Then set the following:

skipped_received_hosts=localhost$,.aaa.fu$,.gaaa.fu$
skipped_received_ips=127.0.0.1$,195.56.111.,84.15.1.8

Finalised the memcached support. I have written my own (poor man's)
memcached client as the memcached_mget() function of libmemcached
produced strange behaviour when compiled statically. Note that my
implementation supports only tcp connections and only on the 11211 port
to 1 memcached server. If you need support for a more complex scenario,
then let me know.

Added support to some counters, so be sure to execute these statements
on the clapf database:

create table if not exists t_counters (
        rcvd bigint unsigned default 0,
        ham bigint unsigned default 0,
        spam bigint unsigned default 0,
        possible_spam bigint unsigned default 0,
        unsure bigint unsigned default 0,
        minefield bigint unsigned default 0,
        virus bigint unsigned default 0,
        fp bigint unsigned default 0,
        fn bigint unsigned default 0
);

insert into t_counters values(0, 0, 0, 0, 0, 0, 0, 0, 0);

The webui will be extended to support these numbers.

clapf will try to create its directories if you start it by root.
The Makefile will not do that for you any longer.

Added '-Q' option to spamdrop to return only 0 (=ham) or 1 (=spam).
Suitable for spam tests and even to integrate with claws-mail.


Best regards,
Janos

Reply via email to