Skip to content

Commit 90f3c77

Browse files
author
Marius Burkard
committed
- fixed rspamd handling of user settings files
- removed separate rspamd greylisting setting for policy and respect mail user/alias/forward/catchall setting for greylisting, fixes #5379
1 parent 2e3887d commit 90f3c77

File tree

6 files changed

+208
-114
lines changed

6 files changed

+208
-114
lines changed

interface/web/admin/server_config_edit.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,21 +174,29 @@ function onAfterUpdate() {
174174
}
175175
}
176176

177-
$mail_users = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ? AND (autoresponder = 'y' OR move_junk = 'y')", intval($this->id));
177+
$mail_users = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ?", intval($this->id));
178178
if(is_array($mail_users) && !empty($mail_users)){
179179
foreach($mail_users as $mail_user){
180180
if($mail_user['autoresponder'] == 'y'){
181181
$mail_user['autoresponder'] = 'n';
182182
$app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true);
183183
$mail_user['autoresponder'] = 'y';
184184
$app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true);
185-
} else {
185+
} elseif($mail_user['move_junk'] == 'y') {
186186
$mail_user['move_junk'] = 'n';
187187
$app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true);
188188
$mail_user['move_junk'] = 'y';
189189
$app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true);
190+
} else {
191+
$app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true);
190192
}
191-
193+
}
194+
}
195+
196+
$mail_forwards = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE server_id = ?", intval($this->id));
197+
if(is_array($mail_forwards) && !empty($mail_forwards)){
198+
foreach($mail_forwards as $mail_forward){
199+
$app->db->datalogUpdate('mail_forwarding', $mail_forward, 'forwarding_id', $mail_forward["forwarding_id"], true);
192200
}
193201
}
194202
}

interface/web/mail/form/spamfilter_policy.tform.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -471,12 +471,6 @@
471471
//#################################
472472
// Begin Datatable fields
473473
//#################################
474-
'rspamd_greylisting' => array (
475-
'datatype' => 'VARCHAR',
476-
'formtype' => 'CHECKBOX',
477-
'default' => 'y',
478-
'value' => array(0 => 'n', 1 => 'y')
479-
),
480474
'rspamd_spam_greylisting_level' => array (
481475
'datatype' => 'DOUBLE',
482476
'formtype' => 'TEXT',

interface/web/mail/spamfilter_policy_edit.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,6 @@ function onAfterUpdate() {
9292
global $app;
9393

9494
$record_has_changed = false;
95-
if(isset($this->dataRecord['rspamd_spam_greylisting_level']) && !isset($this->dataRecord['rspamd_greylisting'])) {
96-
$this->dataRecord['rspamd_greylisting'] = 'n';
97-
}
9895
foreach($this->dataRecord as $key => $val) {
9996
if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) {
10097
// Record has changed

interface/web/mail/templates/spamfilter_rspamd_edit.htm

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,6 @@ <h1><tmpl_var name="list_head_txt"></h1>
33
</div>
44
<p><tmpl_var name="list_desc_txt"></p>
55

6-
<div class="form-group">
7-
<label class="col-sm-3 control-label">{tmpl_var name='rspamd_greylisting_txt'}</label>
8-
<div class="col-sm-9">
9-
{tmpl_var name='rspamd_greylisting'}
10-
</div>
11-
</div>
126
<div class="form-group">
137
<label for="rspamd_spam_greylisting_level" class="col-sm-3 control-label">{tmpl_var name='rspamd_spam_greylisting_level_txt'}</label>
148
<div class="col-sm-9"><input type="text" name="rspamd_spam_greylisting_level" id="rspamd_spam_greylisting_level" value="{tmpl_var name='rspamd_spam_greylisting_level'}" class="form-control" /></div>

server/conf/rspamd_users.inc.conf.master

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,55 @@
1-
spamfilter_users-<tmpl_var name='record_id'> {
1+
<tmpl_var name='record_identifier'> {
22
priority = <tmpl_var name='priority'>;
3-
<tmpl_if name='local' op='==' value='Y'>rcpt<tmpl_else>from</tmpl_if> = "<tmpl_var name='email'>";
4-
<tmpl_if name='spam_lover_virus_lover' op='==' value='spam_lover_AND_virus_lover'>
5-
want_spam = yes;
3+
<tmpl_if name='from_email'>
4+
from = "<tmpl_var name='from_email'>";
5+
</tmpl_if>
6+
<tmpl_if name='to_email'>
7+
rcpt = "<tmpl_var name='to_email'>";
68
</tmpl_if>
7-
<tmpl_if name='spam_lover_virus_lover' op='==' value='spam_lover_AND_NOTvirus_lover'>
9+
10+
<tmpl_if name='spam_lover'>
11+
<tmpl_if name='virus_lover'>
12+
want_spam = yes;
13+
<tmpl_else>
814
apply {
915
CLAM_VIRUS = 1999.0;
1016
JUST_EICAR = 1999.0;
1117
actions {
1218
reject = null;
19+
<tmpl_if name='greylisting'>
20+
<tmpl_if name='greylisting' op='==' value='y'>
21+
greylist = <tmpl_var name='greylisting_level'>;
22+
<tmpl_else>
23+
greylist = null;
24+
</tmpl_if>
25+
</tmpl_if>
1326
}
1427
}
15-
</tmpl_if>
16-
<tmpl_if name='spam_lover_virus_lover' op='==' value='NOTspam_lover_AND_virus_lover'>
28+
</tmpl_if>
29+
<tmpl_else>
1730
apply {
31+
<tmpl_if name='virus_lover'>
1832
CLAM_VIRUS = -999.0;
1933
JUST_EICAR = -999.0;
20-
actions {
21-
<tmpl_if name='rspamd_greylisting' op='==' value='y'>greylist = <tmpl_var name='rspamd_spam_greylisting_level'>;</tmpl_if>
22-
<tmpl_if name='rspamd_spam_tag_method' op='==' value='rewrite_subject'>"rewrite subject" = <tmpl_var name='rspamd_spam_tag_level'>;</tmpl_if>
23-
<tmpl_if name='rspamd_spam_tag_method' op='==' value='add_header'>"add header" = <tmpl_var name='rspamd_spam_tag_level'>;</tmpl_if>
24-
reject = <tmpl_var name='rspamd_spam_kill_level'>;
25-
}
26-
}
27-
</tmpl_if>
28-
<tmpl_if name='spam_lover_virus_lover' op='==' value='NOTspam_lover_AND_NOTvirus_lover'>
29-
apply {
34+
<tmpl_else>
3035
CLAM_VIRUS = <tmpl_var name='rspamd_virus_kill_level'>;
3136
JUST_EICAR = <tmpl_var name='rspamd_virus_kill_level'>;
37+
</tmpl_if>
3238
actions {
33-
<tmpl_if name='rspamd_greylisting' op='==' value='y'>greylist = <tmpl_var name='rspamd_spam_greylisting_level'>;</tmpl_if>
34-
<tmpl_if name='rspamd_spam_tag_method' op='==' value='rewrite_subject'>"rewrite subject" = <tmpl_var name='rspamd_spam_tag_level'>;</tmpl_if>
35-
<tmpl_if name='rspamd_spam_tag_method' op='==' value='add_header'>"add header" = <tmpl_var name='rspamd_spam_tag_level'>;</tmpl_if>
39+
<tmpl_if name='rspamd_spam_tag_method' op='==' value='rewrite_subject'>
40+
"rewrite subject" = <tmpl_var name='rspamd_spam_tag_level'>;
41+
</tmpl_if>
42+
<tmpl_if name='rspamd_spam_tag_method' op='==' value='add_header'>
43+
"add header" = <tmpl_var name='rspamd_spam_tag_level'>;
44+
</tmpl_if>
3645
reject = <tmpl_var name='rspamd_spam_kill_level'>;
46+
<tmpl_if name='greylisting'>
47+
<tmpl_if name='greylisting' op='==' value='y'>
48+
greylist = <tmpl_var name='greylisting_level'>;
49+
<tmpl_else>
50+
greylist = null;
51+
</tmpl_if>
52+
</tmpl_if>
3753
}
3854
}
3955
</tmpl_if>

0 commit comments

Comments
 (0)