Better sieve filters and lmtp support, auto nuke trash

This commit is contained in:
Alex 2020-08-21 10:29:48 +02:00
parent 5d7f2b0f4c
commit 44601962ca
Signed by: caskd
GPG Key ID: F92BA85F61F4C173
2 changed files with 68 additions and 20 deletions

View File

@ -1,5 +1,10 @@
require ["fileinto", "mailbox"]; require ["fileinto","mailbox"];
if header :contains "X-Spam-Flag" "YES" if anyof(
header :contains ["X-Spam-Flag"] "YES",
header :contains ["X-Spam-Status"] "spam",
header :contains ["X-Spam"] "Yes",
header :contains ["Subject"] "*** SPAM ***"
)
{ {
fileinto "Junk"; fileinto :create "Junk";
} }

View File

@ -101,6 +101,8 @@ dict {
# it's not found: # it's not found:
!include_try local.conf !include_try local.conf
protocols = imap lmtp
ssl = required ssl = required
ssl_cert = </etc/ssl/private/mail/fullchain.pem ssl_cert = </etc/ssl/private/mail/fullchain.pem
ssl_key = </etc/ssl/private/mail/privkey.pem ssl_key = </etc/ssl/private/mail/privkey.pem
@ -118,7 +120,6 @@ passdb {
driver = pam driver = pam
} }
service imap-login { service imap-login {
inet_listener imap { inet_listener imap {
#address = none #address = none
@ -131,6 +132,22 @@ service imap-login {
} }
} }
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
user = root
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
group = postfix
user = postfix
}
}
mail_location = maildir:~/Mail:INBOX=~/Mail/Inbox:LAYOUT=fs mail_location = maildir:~/Mail:INBOX=~/Mail/Inbox:LAYOUT=fs
namespace inbox { namespace inbox {
inbox = yes inbox = yes
@ -149,30 +166,56 @@ namespace inbox {
} }
mailbox Trash { mailbox Trash {
special_use = \Trash special_use = \Trash
autoexpunge = 7d
} }
mailbox Archive { mailbox Archive {
special_use = \Archive special_use = \Archive
auto = subscribe
} }
} }
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
user = root
}
protocol lda {
mail_plugins = $mail_plugins sieve
}
protocol lmtp { protocol lmtp {
mail_plugins = $mail_plugins sieve mail_plugins = $mail_plugins sieve
} }
plugin { plugin {
sieve = ~/.dovecot.sieve sieve_plugins = sieve_extprograms
sieve_default = /var/lib/dovecot/sieve/default.sieve sieve_extensions = +editheader +mboxmetadata +servermetadata +imapflags +notify +spamtest +spamtestplus +virustest
sieve_dir = ~/.sieve
sieve_global_dir = /var/lib/dovecot/sieve/ ##
# rspamd:
#
# X-Spamd-Result: default: False [0.00 / 150.00]; ...
# X-Spam: Yes
##
# rspamd score based
#
# WARNING: the max score provided by rspamd is the maximum score
# rspamd cares about, e.g. the score required for reject, not
# necessarily the one for add_header, and therefore not a good
# baseline for what should be considered "100%" spam.
#
##
sieve_spamtest_status_type = score
sieve_spamtest_status_header = X-Spamd-Result: .*? \[([[:digit:]]+\.[[:digit:]]+) / [[:digit:]]+\.[[:digit:]]+\];
### best to use the same value as for `add_header` in rspamd
sieve_spamtest_max_value = 6
### can read the "max score" from rspamd, but see warning above
## sieve_spamtest_max_header = X-Spamd-Result: .*? \[[[:digit:]]+\.[[:digit:]]+ / ([[:digit:]]+\.[[:digit:]]+)\];
##
# Yes/No based
#
##
# sieve_spamtest_status_type = text
# sieve_spamtest_status_header = X-Spam
# sieve_spamtest_text_value1 = No
# sieve_spamtest_text_value10 = Yes
#
# Automatically filter spam into the spam folder
#
sieve_before = /usr/lib/dovecot/sieve/default.sieve
} }