Configurei com sucesso Postfix + Dovecot + IMAP. E também instalei spamassassin
, spamc
, spamass-milter
, e configurei imap_sieve
o plugin para combater spam.
Saída de doveconf -n
:
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 5.10.0-33-amd64 x86_64 Debian 11.11
# Hostname: mail.example.com
mail_debug = yes
mail_location = maildir:~/Maildir
mail_privileged_group = mail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
namespace inbox {
inbox = yes
location =
mailbox Drafts {
auto = no
special_use = \Drafts
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
}
passdb {
args = %s
driver = pam
}
plugin {
imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve.d/default.sieve
imapsieve_mailbox1_name = INBOX
sieve_plugins = sieve_imapsieve
}
protocols = imap sieve
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
ssl = required
ssl_cert = </etc/ssl/mail/domain.crt
ssl_key = # hidden, use -P to show it
userdb {
driver = passwd
}
protocol imap {
mail_max_userip_connections = 20
mail_plugins = " imap_sieve"
}
Conteúdo de /var/lib/dovecot/sieve.d/default.sieve
:
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Spam";
stop;
}
E testei minha configuração com:
# Executed from outside my network
wget https://spamassassin.apache.org/gtube/gtube.txt
swaks --to [email protected] --body gtube.txt
E funciona. O e-mail é marcado com sucesso como spam (evidente X-Spam-Flag: YES
nos cabeçalhos). Mas o filtro Sieve não funciona como esperado. Ele deveria mover a mensagem para minha pasta "Spam", mas em vez disso ele copia a mensagem para a pasta "Spam", mas somente depois que eu abro a mensagem. A mensagem permanece dentro da CAIXA DE ENTRADA.
Como posso fazer para que a mensagem seja movida para a pasta "Spam" (não copiada)? E por que o filtro Sieve só funciona depois que eu abro a mensagem no meu cliente de e-mail?