Greylisting alternative based on perl/MySQL

I am testing right now a greylisting solution alternative to cpanel, based on perl and MySQL.

Main features are:

If IP whitelisted by Cpanel as from common mail provider, PASSED.

If IP belongs to the same C class for another IP at greylisted-passed database, for the same sender_from and the same receipt_to, PASSED (we are not whitelisting C class for any email, only for same sender/receipt, so could catch mail from legit MTA farms).

Checking PTR and IP:

if PTR record for IP does not exists: GREYLISTED.

if forwarding the PTR answer from the IP, and this IP is not legit or listed: GREYLISTED.

if from's domain does not have MX record: GREYLISTED.

if the IP for the MX server of this domain (from), is the same sending: PASSED.

if no match previously, then:

extract base domain name from MX of the domain.

extract base domain name from PTR record.

if base domain name from MX == base domain name from PTR: PASSED.

(I think this is much better than partials ptr matches).

All code in perl, executed from exim.pl (I know how to make cpanel not rewritting my confs without failing). The database in MySQL.

Every action appears in exim_mainlog.

Every 30 minutes, a perl script does remove hosts greylisted without succeed and add current lines to exim_mainlog for analysis.

When host passes, exim_mainlog does notify which way it did... if not whitelisted but greylisted, and passes finally few minutes later, delay time is also calculated and added to log.