Skip to content

Commit 00c5c51

Browse files
author
Till Brehm
committed
Merge branch 'master' into 'master'
Support mail filtering by envelope :detail (+ part in mail addresses) See merge request ispconfig/ispconfig3!703
2 parents 6b8a1eb + 8ef8a7d commit 00c5c51

File tree

13 files changed

+24
-17
lines changed

13 files changed

+24
-17
lines changed

install/dist/lib/debian60.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public function configure_dovecot()
6161
}
6262
//* Configure master.cf and add a line for deliver
6363
$content = rf($conf["postfix"]["config_dir"].'/master.cf');
64-
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n";
64+
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${original_recipient}'."\n";
6565
af($config_dir.'/master.cf', $deliver_content);
6666
unset($content);
6767
unset($deliver_content);

install/dist/lib/fedora.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ public function configure_dovecot()
394394
}
395395
//* Configure master.cf and add a line for deliver
396396
$content = rf($conf["postfix"]["config_dir"].'/master.cf');
397-
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n";
397+
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${original_recipient}'."\n";
398398
af($conf["postfix"]["config_dir"].'/master.cf', $deliver_content);
399399
unset($content);
400400
unset($deliver_content);

install/dist/lib/gentoo.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ public function configure_dovecot()
303303
}
304304
//* Configure master.cf and add a line for deliver
305305
$content = rf($conf["postfix"]["config_dir"].'/master.cf');
306-
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DROhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n";
306+
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DROhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${original_recipient}'."\n";
307307
af($config_dir.'/master.cf', $deliver_content);
308308
unset($content);
309309
unset($deliver_content);

install/dist/lib/opensuse.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ public function configure_dovecot()
404404
}
405405
//* Configure master.cf and add a line for deliver
406406
$content = rf($conf["postfix"]["config_dir"].'/master.cf');
407-
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n";
407+
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${original_recipient}'."\n";
408408
af($conf["postfix"]["config_dir"].'/master.cf', $deliver_content);
409409
unset($content);
410410
unset($deliver_content);

install/lib/installer_base.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1322,7 +1322,7 @@ public function configure_dovecot() {
13221322
}
13231323
//* Configure master.cf and add a line for deliver
13241324
$content = rf($conf["postfix"]["config_dir"].'/master.cf');
1325-
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n";
1325+
$deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${original_recipient}'."\n";
13261326
af($config_dir.'/master.cf', $deliver_content);
13271327
unset($content);
13281328
unset($deliver_content);

interface/lib/plugins/mail_user_filter_plugin.inc.php

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -148,17 +148,20 @@ private function mail_user_filter_get_rule($page_form) {
148148
}
149149
$content .= 'if size :over '.intval($page_form->dataRecord["searchterm"]).$unit.' {'."\n";
150150
} else {
151-
152-
if($page_form->dataRecord["source"] == 'Header') {
153-
$parts = explode(':',trim($page_form->dataRecord["searchterm"]));
154-
$page_form->dataRecord["source"] = trim($parts[0]);
155-
unset($parts[0]);
156-
$page_form->dataRecord["searchterm"] = trim(implode(':',$parts));
157-
unset($parts);
151+
if($page_form->dataRecord["source"] == 'Detail') {
152+
$content .= 'if envelope :detail :regex "to" ["';
153+
} else {
154+
if($page_form->dataRecord["source"] == 'Header') {
155+
$parts = explode(':',trim($page_form->dataRecord["searchterm"]));
156+
$page_form->dataRecord["source"] = trim($parts[0]);
157+
unset($parts[0]);
158+
$page_form->dataRecord["searchterm"] = trim(implode(':',$parts));
159+
unset($parts);
160+
}
161+
162+
$content .= 'if header :regex ["'.strtolower($page_form->dataRecord["source"]).'"] ["';
158163
}
159164

160-
$content .= 'if header :regex ["'.strtolower($page_form->dataRecord["source"]).'"] ["';
161-
162165
$searchterm = preg_quote($page_form->dataRecord["searchterm"]);
163166
$searchterm = str_replace(
164167
array(

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
'datatype' => 'VARCHAR',
8989
'formtype' => 'SELECT',
9090
'default' => '',
91-
'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt')
91+
'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt', 'Detail'=>'detail_txt')
9292
),
9393
'op' => array (
9494
'datatype' => 'VARCHAR',

interface/web/mail/lib/lang/de_mail_user_filter.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ $wb['reject_txt'] = 'Abweisen';
2727
$wb['stop_txt'] = 'Stop';
2828
$wb['move_to_txt'] = 'Verschiebe nach';
2929
$wb['mark_read_txt'] = 'Als gelesen markieren';
30+
$wb['detail_txt'] = 'Detail-Angabe des Empfängers (user+detail@domain.com)';
3031
?>

interface/web/mail/lib/lang/en_mail_user_filter.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ $wb['reject_txt'] = 'Reject';
2727
$wb['stop_txt'] = 'Stop';
2828
$wb['move_to_txt'] = 'Move to';
2929
$wb['mark_read_txt'] = 'Mark as read';
30+
$wb['detail_txt'] = 'Detail part in recipient (user+detail@domain.com)';
3031
?>

interface/web/mailuser/lib/lang/de_mail_user_filter.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ $wb['begins_with_txt'] = 'Startet mit';
1818
$wb['ends_with_txt'] = 'Endet mit';
1919
$wb['move_to_txt'] = 'Verschieben nach';
2020
$wb['delete_txt'] = 'Löschen';
21+
$wb['detail_txt'] = 'Detail-Angabe des Empfängers (user+detail@domain.com)';
2122
?>

0 commit comments

Comments
 (0)