mirror of
https://github.com/Mailu/Mailu.git
synced 2025-03-17 20:57:54 +02:00
Remove binary apk and use sieve_imap for antispam learning, fixes #33
This commit is contained in:
parent
f1be8d7fd5
commit
f2ff1eb955
@ -2,17 +2,11 @@ FROM alpine:edge
|
||||
|
||||
RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
|
||||
&& apk add --update \
|
||||
dovecot \
|
||||
dovecot-sqlite \
|
||||
dovecot-pigeonhole-plugin \
|
||||
dovecot-antispam-plugin@testing \
|
||||
dovecot dovecot-sqlite dovecot-pigeonhole-plugin dovecot-pigeonhole-plugin-extdata \
|
||||
rspamd-client@testing \
|
||||
bash \
|
||||
&& rm -rf /var/cache/apk/*
|
||||
|
||||
COPY dovecot-pigeonhole-plugin-extdata-39-r0.apk /
|
||||
RUN apk add --allow-untrusted --force dovecot-pigeonhole-plugin-extdata-39-r0.apk
|
||||
|
||||
COPY conf /etc/dovecot
|
||||
COPY sieve /var/lib/dovecot
|
||||
|
||||
|
@ -104,7 +104,7 @@ service auth-worker {
|
||||
###############
|
||||
|
||||
protocol imap {
|
||||
mail_plugins = $mail_plugins imap_quota antispam
|
||||
mail_plugins = $mail_plugins imap_quota imap_sieve
|
||||
}
|
||||
|
||||
protocol pop3 {
|
||||
@ -155,13 +155,16 @@ service managesieve {
|
||||
|
||||
plugin {
|
||||
sieve = file:~/sieve;active=~/.dovecot.sieve
|
||||
sieve_plugins = sieve_extdata
|
||||
sieve_global_extensions = +vnd.dovecot.extdata +spamtest +spamtestplus
|
||||
sieve_plugins = sieve_extdata sieve_imapsieve sieve_extprograms
|
||||
sieve_global_extensions = +vnd.dovecot.extdata +spamtest +spamtestplus +vnd.dovecot.execute
|
||||
sieve_before = /var/lib/dovecot/before.sieve
|
||||
sieve_default = /var/lib/dovecot/default.sieve
|
||||
sieve_after = /var/lib/dovecot/after.sieve
|
||||
sieve_extdata_dict_uri = proxy::sieve
|
||||
|
||||
# Sieve execute
|
||||
sieve_execute_bin_dir = /var/lib/dovecot/bin
|
||||
|
||||
# Send vacation replies even for aliases
|
||||
# See the Pigeonhole documentation about warnings: http://wiki2.dovecot.org/Pigeonhole/Sieve/Extensions/Vacation
|
||||
# It appears that our implemntation of mail delivery meets criteria of section 4.5
|
||||
@ -171,19 +174,20 @@ plugin {
|
||||
# Include the recipient in vacation replies so that DKIM applies
|
||||
sieve_vacation_send_from_recipient = yes
|
||||
|
||||
antispam_backend = mailtrain
|
||||
antispam_spam = Junk
|
||||
antispam_trash = Trash
|
||||
antispam_mail_sendmail = /usr/bin/rspamc
|
||||
antispam_mail_spam = learn_spam
|
||||
antispam_mail_notspam = learn_ham
|
||||
antispam_mail_sendmail_args = -h;antispam:11334;-P;q1
|
||||
|
||||
# extract spam score from
|
||||
# X-Spam-Result: .... [<value> / <max_value] ...
|
||||
sieve_spamtest_status_type = score
|
||||
sieve_spamtest_status_header = X-Spamd-Result: .*\[(-?[[:digit:]]+\.[[:digit:]]+) .*\]
|
||||
sieve_spamtest_max_header = X-Spamd-Result: .*\[.* ([[:digit:]]+\.[[:digit:]]+)\]
|
||||
|
||||
# Learn from spam
|
||||
imapsieve_mailbox1_name = Junk
|
||||
imapsieve_mailbox1_causes = COPY
|
||||
imapsieve_mailbox1_before = file:/var/lib/dovecot/report-spam.sieve
|
||||
imapsieve_mailbox2_name = *
|
||||
imapsieve_mailbox2_from = Junk
|
||||
imapsieve_mailbox2_causes = COPY
|
||||
imapsieve_mailbox2_before = file:/var/lib/dovecot/report-ham.sieve
|
||||
}
|
||||
|
||||
###############
|
||||
|
Binary file not shown.
3
dovecot/sieve/bin/mailtrain
Executable file
3
dovecot/sieve/bin/mailtrain
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
rspamc -h antispam:11334 -P mailu "learn_$1" /dev/stdin <&0
|
3
dovecot/sieve/report-ham.sieve
Normal file
3
dovecot/sieve/report-ham.sieve
Normal file
@ -0,0 +1,3 @@
|
||||
require "vnd.dovecot.execute";
|
||||
|
||||
execute :pipe mailtrain ham;
|
3
dovecot/sieve/report-spam.sieve
Normal file
3
dovecot/sieve/report-spam.sieve
Normal file
@ -0,0 +1,3 @@
|
||||
require "vnd.dovecot.execute";
|
||||
|
||||
execute :pipe "mailtrain" "spam";
|
@ -2,7 +2,7 @@ worker {
|
||||
bind_socket = "0.0.0.0:11334";
|
||||
type = "controller";
|
||||
count = 1;
|
||||
password = "q1";
|
||||
password = "mailu";
|
||||
secure_ip = "127.0.0.1";
|
||||
secure_ip = "::1";
|
||||
static_dir = "${WWWDIR}";
|
Loading…
x
Reference in New Issue
Block a user