pick up spamhuse on blacklist detection
[Pman.Core] / DataObjects / Core_notify_blacklist.php
1 <?php
2 /**
3  * Table Definition for core_notify_blacklist
4  */
5 class_exists('DB_DataObject') ? '' : require_once 'DB/DataObject.php';
6
7 class Pman_Core_DataObjects_Core_notify_blacklist extends DB_DataObject 
8 {
9     ###START_AUTOCODE
10     /* the code below is auto generated do not remove the above tag */
11
12     public $__table = 'core_notify_blacklist';    // table name
13     public $id;                              // int(11)  not_null primary_key auto_increment
14     public $server_id;
15     public $domain_id;
16     public $error_msg;
17     public $added_dt;
18     
19     
20     function messageIsBlacklisted($err)
21     {
22         $match = array(
23             '5.7.0 DT:SPM', // 163.com
24             '5.7.1 H:DYNB', // some other black list
25             'on our block list',  // live.com
26             'spameatingmonkey.net', // spameatingmonkey.net (users)
27             'sender is listed on the block', // korian?
28             'proofpoint.com', // another spam detecotr
29             'cloud-security.net', // another spam protector..
30             'spam complain',
31             'ANTISPAM',
32             'probability of spam',
33             'block list by spam', // spamhaus
34             'blocked using Spamhaus',
35             'www.spamhaus.org',
36              
37         );
38         foreach($match as $str) {
39             if (strpos($err, $str) !== false) {
40                 return true;
41             }
42         }
43         return false;
44     }
45     
46     // delete blacklists older than 1 week (and try again)
47     function prune()
48     {
49         $this->query("
50             DELETE FROM {$this->tableName()} where added_dt < NOW()  - INTERVAL 1 WEEK
51         ");
52             
53     }
54     
55 }