У меня есть почтовый сервер Ubuntu 16.04 с постфикс / spamassassin / голубятня с виртуальными почтовыми ящиками в Maildir формат. Весь процесс работает отлично уже год. Спамы отмечены с «***** SPAM *****» в теме и с «X-Spam-Flag: YES» в заголовке электронного письма.
Я пытался сейчас добавить сито dovecot, чтобы безуспешно переместить СПАМ-сообщения в папку Junk, я не вижу никаких признаков того, что сито вообще что-то делает.
Мой dovecot.conf:
auth_mechanisms = cram-md5
auth_verbose = yes
base_dir = /var/run/dovecot/
info_log_path = /var/log/dovecot.info
log_path = /var/log/dovecot
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n
passdb {
args = /etc/dovecot/passwd
driver = passwd-file
}
protocols = imap pop3
service auth {
executable = /usr/lib/dovecot/auth
user = root
}
service imap-login {
chroot = login
executable = /usr/lib/dovecot/imap-login
user = dovecot
# disable non secure IMAP
inet_listener imap {
port = 0
}
}
service imap {
executable = /usr/lib/dovecot/imap
}
service pop3-login {
chroot = login
executable = /usr/lib/dovecot/pop3-login
user = dovecot
# disable pop3
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 0
}
}
service pop3 {
executable = /usr/lib/dovecot/pop3
}
ssl = no
userdb {
args = /etc/dovecot/users
driver = passwd-file
}
valid_chroot_dirs = /var/spool/vmail
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
# SSL settings
ssl = yes
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
# SMTP authentication
service auth {
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
# Default separator definition needed by doveadm for migration
namespace {
inbox = yes
separator = /
}
plugin {
sieve = /etc/dovecot/sieve/default.sieve
}
protocol lda {
mail_plugins = $mail_plugins sieve
}
Я добавил только плагин и протокол lda сейчас. Содержание файла default.sieve:
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
Тестовое СПАМ-сообщение помечается как СПАМ, но не перемещается в папку Нежелательная. Я ничего не вижу в mail.log что связано с ситом .:
Jul 30 20:05:12 zg-3 postfix/smtpd[4446]: connect from smtp4.enternet.hu[62.112.192.37]
Jul 30 20:05:13 zg-3 postfix/smtpd[4446]: 3C4CC9F570: client=smtp4.enternet.hu[62.112.192.37]
Jul 30 20:05:13 zg-3 postfix/cleanup[4450]: 3C4CC9F570: message-id=<c6b3bca5-ece3-9e69-8e30-28173abc2ec6@hu.inter.net>
Jul 30 20:05:13 zg-3 postfix/qmgr[1557]: 3C4CC9F570: from=<nagyt@hu.inter.net>, size=918, nrcpt=1 (queue active)
Jul 30 20:05:13 zg-3 postfix/smtpd[4446]: disconnect from smtp4.enternet.hu[62.112.192.37] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
Jul 30 20:05:13 zg-3 postfix/pickup[3949]: 5F7FEA3CBC: uid=1003 from=<nagyt@hu.inter.net>
Jul 30 20:05:13 zg-3 postfix/pipe[4451]: 3C4CC9F570: to=<tibor@softxs.ch>, relay=spamassassin, delay=0.15, delays=0.05/0.01/0/0.1, dsn=2.0.0, status=sent (delivered via spamassassin service)
Jul 30 20:05:13 zg-3 postfix/qmgr[1557]: 3C4CC9F570: removed
Jul 30 20:05:13 zg-3 postfix/cleanup[4450]: 5F7FEA3CBC: message-id=<c6b3bca5-ece3-9e69-8e30-28173abc2ec6@hu.inter.net>
Jul 30 20:05:13 zg-3 postfix/qmgr[1557]: 5F7FEA3CBC: from=<nagyt@hu.inter.net>, size=3304, nrcpt=1 (queue active)
Jul 30 20:05:13 zg-3 postfix/virtual[4455]: 5F7FEA3CBC: to=<tibor@softxs.ch>, relay=virtual, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Jul 30 20:05:13 zg-3 postfix/qmgr[1557]: 5F7FEA3CBC: removed
Что может быть не так?
Проблема заключалась в том, что Postfix не был настроен для доставки через LDA dovecot, поэтому sieve никогда не вызывается.
Соответствующие строки конфигурации в postfix / master.cf
smtp inet n - - - - smtpd
-o content_filter=spamassassin
[...]
### Configuration for dovecot as LDA (New 2019-08-13)
# spamassassin unix - n n - - pipe
# user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${original_recipient}
spamassassin unix - n n - - pipe
flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e
/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
Соответствующие строки конфигурации в postfix / main.cf:
### Configuration for dovecot as LDA (New 2019-08-13)
virtual_transport = dovecot
spamassassin_destination_recipient_limit = 1
dovecot_destination_recipient_limit = 1
Файлы dovecot.cnf и сито / default.sieve такие же, как в вопросе.
Стоит проверить /var/log/dovecot.info рядом /var/log/mail.log. Аналогичная строка должна появиться в спаме:
2019-08-13 15:52:15 lda(tibor.nagy@softxs.ch): Info: sieve: msgid=<904f3c82-6db1-8b5c-d465-ef140c2f5948@hu.inter.net>: stored mail into mailbox 'Junk'