public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
Rspamd user settings: also match From header
93a092e6
data/conf/rspamd/dynmaps/settings.php | 82 +++++++++++++++++++++++++++++++++++
1 file changed, 82 insertions(+)
Diff
diff --git a/data/conf/rspamd/dynmaps/settings.php b/data/conf/rspamd/dynmaps/settings.php
index 5689ece3..56481e5e 100644
--- a/data/conf/rspamd/dynmaps/settings.php
+++ b/data/conf/rspamd/dynmaps/settings.php
@@ -174,6 +174,47 @@ while ($row = array_shift($rows)) {
<?php
}
}
+?>
+ apply "default" {
+ MAILCOW_WHITE = -999.0;
+ }
+ symbols [
+ "MAILCOW_WHITE"
+ ]
+ }
+ whitelist_header_<?=$username_sane;?> {
+<?php
+ $stmt = $pdo->prepare("SELECT GROUP_CONCAT(REPLACE(`value`, '*', '.*') SEPARATOR '|') AS `value` FROM `filterconf`
+ WHERE `object`= :object
+ AND `option` = 'whitelist_from'");
+ $stmt->execute(array(':object' => $row['object']));
+ $grouped_lists = $stmt->fetchAll(PDO::FETCH_COLUMN);
+ $value_sane = preg_replace("/\.\./", ".", (preg_replace("/\*/", ".*", $grouped_lists[0])));
+?>
+ request_header = {
+ "From" = "/(<?=$value_sane;?>)/i";
+ }
+<?php
+ if (!filter_var(trim($row['object']), FILTER_VALIDATE_EMAIL)) {
+?>
+ priority = 5;
+<?php
+ foreach (ucl_rcpts($row['object'], 'mailbox') as $rcpt) {
+?>
+ rcpt = "<?=$rcpt;?>";
+<?php
+ }
+ }
+ else {
+?>
+ priority = 6;
+<?php
+ foreach (ucl_rcpts($row['object'], 'mailbox') as $rcpt) {
+?>
+ rcpt = "<?=$rcpt;?>";
+<?php
+ }
+ }
?>
apply "default" {
MAILCOW_WHITE = -999.0;
@@ -225,6 +266,47 @@ while ($row = array_shift($rows)) {
<?php
}
}
+?>
+ apply "default" {
+ MAILCOW_BLACK = 999.0;
+ }
+ symbols [
+ "MAILCOW_BLACK"
+ ]
+ }
+ blacklist_header_<?=$username_sane;?> {
+<?php
+ $stmt = $pdo->prepare("SELECT GROUP_CONCAT(REPLACE(`value`, '*', '.*') SEPARATOR '|') AS `value` FROM `filterconf`
+ WHERE `object`= :object
+ AND `option` = 'blacklist_from'");
+ $stmt->execute(array(':object' => $row['object']));
+ $grouped_lists = $stmt->fetchAll(PDO::FETCH_COLUMN);
+ $value_sane = preg_replace("/\.\./", ".", (preg_replace("/\*/", ".*", $grouped_lists[0])));
+?>
+ request_header = {
+ "From" = "/(<?=$value_sane;?>)/i";
+ }
+<?php
+ if (!filter_var(trim($row['object']), FILTER_VALIDATE_EMAIL)) {
+?>
+ priority = 5;
+<?php
+ foreach (ucl_rcpts($row['object'], 'mailbox') as $rcpt) {
+?>
+ rcpt = "<?=$rcpt;?>";
+<?php
+ }
+ }
+ else {
+?>
+ priority = 6;
+<?php
+ foreach (ucl_rcpts($row['object'], 'mailbox') as $rcpt) {
+?>
+ rcpt = "<?=$rcpt;?>";
+<?php
+ }
+ }
?>
apply "default" {
MAILCOW_BLACK = 999.0;