Roundcube Community Forum

 

SPAM FILTER PLUGIN - Hmailserver 5

Started by fabiosergio, July 04, 2010, 02:24:24 AM

Previous topic - Next topic

fabiosergio

Hi!!!

I have:
 RC 0.4b
 Hmailserver 5.3.2-B1769 with Mysql db
 Mysql 5.1.47
 Windows S. 2008 64bits

I have config. the Spamfilter plugin and always give me a error, but wen I clicked save for the 2 time they save..

In hmail Admin I see the rule created but nothing is set in the actions field (move to IMAP folder).

I could verify that doesn't create in the hmailserver db the values in hm_rule_actions table.

The error is because in the setup of the hmailserver the values of the table is set to "Not null".

i have changed the query this:
INSERT INTO hm_rule_actions (actionruleid,actiontype,actionimapfolder,actionsortorder,actionrouteid,actionsubject,actionfromname,actionfromaddress,actionto,actionbody,actionfilename,actionscriptfunction,actionheader,actionvalue)  VALUES('7','4','Spam','0','0','','','','','','','','','')


I could change the Not null value in db but I don't like to modify values in hmail db.


Best regards!!

rosali

This bug has been fixed. New version will be released soon.
Regards,
Rosali

fabiosergio

#2
Hi, again!!

I could see that Spamfilter has been fixed! And works great!

Just lo let you now, If I put in my config file:
// Rule Name
$rcmail_config['spamfilter_rule_name'] = 'X-hMailServer-Reason-Score';
// Spam header field
$rcmail_config['spamfilter_header_field'] = 'X-hMailServer-Reason-Score';

the plugin doesn't work! the rules was created but there's no rules_action and rule criteria.
But if I change the rule name for other one they work!
All I have to say is if you put this 2 fields in the config file doesn't! But I think that not a problem!

Keep the good work!

Best regards!!

LordNik

Quote from: rosali;28500This bug has been fixed. New version will be released soon.

Really, now it's fixed?

Can i say where i can download the new version?

I have the same bug.

Please help me.

Thanks a lot,
Niccolò Patriarchi

P.S. The is another similar plugin which move the spam e-mail to the spam folder?

rosali

#4
Could you please post plugin version and lines 24 - 33 of your hmail_spamfilter.php?

Also please post the structure of hmail_rule_actions table (hmailserver database).

Mine is:

  
`actionidint(11NOT NULL auto_increment,
  `
actionruleidint(11NOT NULL,
  `
actiontypetinyint(4NOT NULL,
  `
actionimapfoldervarchar(255NOT NULL,
  `
actionsubjectvarchar(255NOT NULL,
  `
actionfromnamevarchar(255NOT NULL,
  `
actionfromaddressvarchar(255NOT NULL,
  `
actiontovarchar(255NOT NULL,
  `
actionbodytext NOT NULL,
  `
actionfilenamevarchar(255NOT NULL,
  `
actionsortorderint(11NOT NULL,
  `
actionscriptfunctionvarchar(255NOT NULL,
  `
actionheadervarchar(80NOT NULL,
  `
actionvaluevarchar(255NOT NULL,
  `
actionrouteidint(11NOT NULL,


Do you use the change posted by fabiosergio above?

Do you run hMailserver on an external MySQL Database?
Regards,
Rosali

LordNik

Quote from: rosali;32081Could you please post plugin version and lines 24 - 33 of your hmail_spamfilter.php?

Also please post the structure of hmail_rule_actions table (hmailserver database).

Mine is:

  
`actionidint(11NOT NULL auto_increment,
  `
actionruleidint(11NOT NULL,
  `
actiontypetinyint(4NOT NULL,
  `
actionimapfoldervarchar(255NOT NULL,
  `
actionsubjectvarchar(255NOT NULL,
  `
actionfromnamevarchar(255NOT NULL,
  `
actionfromaddressvarchar(255NOT NULL,
  `
actiontovarchar(255NOT NULL,
  `
actionbodytext NOT NULL,
  `
actionfilenamevarchar(255NOT NULL,
  `
actionsortorderint(11NOT NULL,
  `
actionscriptfunctionvarchar(255NOT NULL,
  `
actionheadervarchar(80NOT NULL,
  `
actionvaluevarchar(255NOT NULL,
  `
actionrouteidint(11NOT NULL,


Do you use the change posted by fabiosergio above?

Do you run hMailserver on an external MySQL Database?

Ok, no problem. Thanks a lot for the support.

The lines are:

  public $task = 'login|mail|settings';
  private $sql_select_account       = 'SELECT accountid FROM hm_accounts WHERE accountaddress=%u';  
  private $sql_select_rule          = 'SELECT ruleid, ruleaccountid, rulename, ruleactive, ruleuseand, rulesortorder FROM hm_rules WHERE ruleaccountid=%u AND rulename =%r';
  private $sql_select_rule_criteria = 'SELECT criteriamatchvalue FROM hm_rule_criterias WHERE criteriaruleid=%id';
  private $sql_update_rule          = 'UPDATE hm_rules SET ruleactive=%b WHERE ruleid=%id';
  private $sql_update_criteria      = 'UPDATE hm_rule_criterias SET criteriamatchvalue=%v WHERE criteriaruleid=%id';
  private $sql_update_action        = 'UPDATE hm_rule_actions SET actionimapfolder=%f WHERE actionruleid=%id';
  private $sql_insert_rule          = "INSERT INTO hm_rules (ruleaccountid,rulename,ruleactive,ruleuseand,rulesortorder)  VALUES(%id,%r,%b,'1','1')";
  private $sql_insert_rule_criteria = "INSERT INTO hm_rule_criterias (criteriaruleid,criteriausepredefined,criteriapredefinedfield,criteriaheadername,criteriamatchtype,criteriamatchvalue)  VALUES(%id,'0','1',%n,'4',%s)";  
  private $sql_insert_rule_action   = "INSERT INTO hm_rule_actions (actionruleid,actiontype,actionimapfolder,actionsortorder,actionrouteid)  VALUES(%id,'4',%f,'0','0')";

You can find the structure of the database here:

http://www.patriarchi.info/images/hmailserver.jpg

I don't understand what fabiosergio means, please can you explain to me what i must to do?

I've changed in the config file rule_name and the header_field, but it doesn't functions.

I run hmailserver into the same server of the mysql database.

Thank you, Niccolò Patriarchi.

rosali

Does hMailserver use an external MySQL database or the built-in one?
Regards,
Rosali

ericpepin

Thanks Fobiosergio great instruction you have given here. love it, keep it up...!!!

LordNik

I've solved modifying this variable, like this:

private $sql_insert_rule_action   = "INSERT INTO hm_rule_actions (actionruleid,actiontype,actionimapfolder,actionsubject,actionfromname,actionfromaddress,actionto,actionbody,actionfilename,actionsortorder,actionscriptfunction,actionheader,actionvalue,actionrouteid)  VALUES(%id,'4',%f,'','','','','','','0','','','','0')";  

Thanks a lot!

Niccolò