Я создал почтовый сервер с помощью этого

https://www.digitalocean.com/community/tutorials/how-to-configure-a-mail-server-using-postfix-dovecot-mysql-and-spamassassin

Это работает, но я получаю тонны электронных писем с правильным spamassassin, я получаю префикс Тематические электронные письма как

***** SPAM ***** 2.9 ***** Do not miss,the fullyQtum Main Network Launches September 13th, 2017

Но я понятия не имею, использовать Sieve для перемещения спам-писем в папку спама.

Вот мой конфиг dovecot:

auth_mechanisms = plain login
mail_location = maildir:/var/mail/vhosts/%d/%n
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
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix = 
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  sieve = /etc/dovecot/sieve.conf
}
protocols = imap lmtp pop3
service auth-worker {
  user = vmail
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  unix_listener auth-userdb {
    mode = 0666
    user = vmail
  }
  user = dovecot
}
service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
ssl = required
ssl_ca = </etc/ssl/acme/patrikx3.com/ca.cer
ssl_cert = </etc/ssl/acme/patrikx3.com/fullchain.cer
ssl_key =  # hidden, use -P to show it
userdb {
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
  driver = static
}
protocol lmtp {
  auth_socket_path = /var/run/dovecot/auth-master
  mail_plugins = " sieve"
}

1 ответ1

2

Вот как это решается (это заняло 7 месяцев):

apt install dovecot-sieve dovecot-managesieved
nano /etc/dovecot/conf.d/90-plugin.conf

Добавить или установить в:


protocol lmtp {
        mail_plugins = $mail_plugins sieve
        auth_socket_path = /var/run/dovecot/auth-master
    }  

nano /etc/dovecot/sieve.conf

Добавить в:

require ["fileinto", "mailbox"];
    if header :contains "X-Spam-Flag" "YES" {
        # move mail into Folder Spam, create folder if not exists
        fileinto :create "Spam";
        stop;
    }

Выполнение:

sievec /etc/dovecot/sieve.conf
nano /etc/spamassassin/local.cf

Добавьте или установите его, это так (я думаю, вам не нужно все остальное):

    report_safe             0
    required_score          2.0
    use_bayes               1
    use_bayes_rules         1
    bayes_auto_learn        1
    skip_rbl_checks         0
    use_razor2              1
    use_pyzor               0

    add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ version=_VERSION_
    bayes_ignore_header X-Bogosity
    bayes_ignore_header X-Spam-Flag
    bayes_ignore_header X-Spam-Status

Снова отредактируйте новый файл:

nano /etc/dovecot/conf.d/90-sieve.conf

Установите этот конфиг, вам больше ничего не нужно:

plugin {
    sieve = /etc/dovecot/sieve.conf
}

Отредактируйте почтовые ящики, так что у Джо есть Junk, я думаю, что Джо просто нужно добавить или раскомментировать настройку Junk:

nano /etc/dovecot/conf.d/15-mailboxes.conf 

Добавьте в этот конфиг:

namespace inbox {
      mailbox Drafts {
        auto = subscribe
        special_use = \Drafts
      }
      mailbox Junk {
        auto = subscribe
        special_use = \Junk
      }
      mailbox Trash {
        auto = subscribe
        special_use = \Trash
      }
      mailbox Sent {
        auto = subscribe
        special_use = \Sent
      }
    }

Мой пользователь для почтового сервера vmail , поэтому сделайте так:

chmod ug+w /etc/dovecot chmod ug+w /etc/dovecot/sieve.conf.svbin

chown -R vmail:vmail /etc/dovecot

Перезагрузите ваш почтовый сервер:

service postfix reload && service spamassassin restart && service dovecot restart

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .