Как настроить почтовый сервер, используя Postfix, Dovecot, MySQL и SpamAssassin и Sieve для перехода в папку Spam / Junk

2686
Patrik Laszlo

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

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" } 
0
Пожалуйста, укажите вашу конфигурацию Dovecot (`doveconf -n`) и оригинальные заголовки спам-письма. Jens Erat 7 лет назад 0
Большое спасибо за помощь, я добавил конфиг в вопросе. Patrik Laszlo 7 лет назад 0

1 ответ на вопрос

2
Patrik Laszlo

Вот как это решается (это заняло 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